/**
 *
 */
import Util;
import OpenApi;
import OpenApiUtil;
import EndpointUtil;

extends OpenApi;


init(config: OpenApi.Config){
  super(config);
  @endpointRule = '';
  
  checkConfig(config);
  @endpoint = getEndpoint('taihao', @regionId, @endpointRule, @network, @suffix, @endpointMap, @endpoint);
}

function getEndpoint(productId: string, regionId: string, endpointRule: string, network: string, suffix: string, endpointMap: map[string]string, endpoint: string) throws: string{
  if (!Util.empty(endpoint)) {
    return endpoint;
  }
  
  if (!Util.isUnset(endpointMap) && !Util.empty(endpointMap[regionId])) {
    return endpointMap[regionId];
  }
  return EndpointUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix);
}

model AddApplicationParam {
  applicationComponentDeploymentList?: [
    ApplicationComponentDeploymentParam
  ](name='applicationComponentDeploymentList', description='应用组件部署列表。'),
  applicationConfigList?: [
    ApplicationConfigParam
  ](name='applicationConfigList', description='应用配置列表。'),
  applicationList?: [
    ApplicationParam
  ](name='applicationList', description='应用列表。'),
  autoRecommendConfig?: boolean(name='autoRecommendConfig', description='是否自动推荐配置。'),
  clientToken?: string(name='clientToken', description='请求幂等参数'),
  clusterId?: string(name='clusterId', description='集群ID。'),
  description?: string(name='description', description='描述。'),
  operateUserId?: string(name='operateUserId', description='操作人员ID。'),
  productRoleName?: string(name='productRoleName', description='产品角色。'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='资源所有者ID。'),
}

model AddProductAndCallerParam {
  productCallerId?: string(name='productCallerId', description='productCallerId'),
  productName?: string(name='productName', description='productName'),
}

model AddSuspendPointOnWorkflowInstanceParam {
  lastSuspendActivityInstanceId?: long(name='lastSuspendActivityInstanceId', description='最后一个暂停点所在的活动实例Id'),
  rangeClosed?: boolean(name='rangeClosed', description='是否闭空间'),
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model ApplicationAction {
  componentName?: string(name='componentName', description='componentName'),
  description?: string(name='description', description='description'),
  name?: string(name='name', description='name'),
}

model ApplicationComponentDeploymentParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  componentName?: string(name='componentName', description='componentName'),
  deployScope?: string(name='deployScope', description='deployScope'),
  nodeGroupIdList?: [ string ](name='nodeGroupIdList', description='nodeGroupIdList'),
  nodeIdList?: [ string ](name='nodeIdList', description='nodeIdList'),
}

model ApplicationConfigParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  configFileName?: string(name='configFileName', description='configFileName'),
  configItemKey?: string(name='configItemKey', description='configItemKey'),
  configItemValue?: string(name='configItemValue', description='configItemValue'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  nodeId?: string(name='nodeId', description='nodeId'),
}

model ApplicationMeta {
  appType?: string(name='appType', description='appType'),
  applicationActions?: [
    ApplicationAction
  ](name='applicationActions', description='applicationActions'),
  autoScalingConfig?: AutoScalingConfig(name='autoScalingConfig', description='autoScalingConfig'),
  componentMetas?: [
    ComponentMeta
  ](name='componentMetas', description='componentMetas'),
  configFiles?: [
    ConfigFileMeta
  ](name='configFiles', description='configFiles'),
  deployModeDependencies?: [
    DeployModeDependency
  ](name='deployModeDependencies', description='deployModeDependencies'),
  description?: string(name='description', description='description'),
  iaasType?: string(name='iaasType', description='iaasType'),
  metaStoreTypes?: [ string ](name='metaStoreTypes', description='metaStoreTypes'),
  name?: string(name='name', description='name'),
  version?: string(name='version', description='version'),
}

model ApplicationMetaDTO {
  appType?: string(name='appType', description='appType'),
  applicationActions?: [
    ApplicationAction
  ](name='applicationActions', description='applicationActions'),
  componentMetas?: [
    ComponentMeta
  ](name='componentMetas', description='componentMetas'),
  configFiles?: [
    ConfigFileMeta
  ](name='configFiles', description='configFiles'),
  deployModeDependencies?: [
    DeployModeDependency
  ](name='deployModeDependencies', description='deployModeDependencies'),
  description?: string(name='description', description='description'),
  iaasType?: string(name='iaasType', description='iaasType'),
  metaStoreTypes?: [ string ](name='metaStoreTypes', description='metaStoreTypes'),
  name?: string(name='name', description='name'),
  version?: string(name='version', description='version'),
}

model ApplicationParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  applicationVersion?: string(name='applicationVersion', description='applicationVersion'),
}

model AutoScalingConfig {
  autoScalingMetricNames?: [ string ](name='autoScalingMetricNames', description='autoScalingMetricNames'),
  loadMeasureMetricName?: string(name='loadMeasureMetricName', description='loadMeasureMetricName'),
  maxAdjustmentValue?: int32(name='maxAdjustmentValue', description='maxAdjustmentValue'),
  supportDecommissionWithGraceful?: boolean(name='supportDecommissionWithGraceful', description='supportDecommissionWithGraceful'),
}

model BooleanResponse {
  code?: string(name='code', description='code'),
  data?: boolean(name='data', description='data'),
  message?: string(name='message', description='message'),
  requestId?: string(name='requestId', description='requestId'),
  success?: boolean(name='success', description='success'),
}

model ByLoadScalingRule {
  comparisonOperator?: string(name='comparisonOperator', description='比较符号'),
  evaluationCount?: int32(name='evaluationCount', description='评估次数'),
  metricName?: string(name='metricName', description='指标名称'),
  statistics?: string(name='statistics', description='统计方式'),
  threshold?: float(name='threshold', description='阈值'),
  timeWindow?: int32(name='timeWindow', description='时间窗口'),
}

model ByLoadScalingRuleSpec {
  comparisonOperator?: string(name='comparisonOperator', description='比较符号'),
  evaluationCount?: int32(name='evaluationCount', description='评估次数'),
  metricName?: string(name='metricName', description='指标名称'),
  statistics?: string(name='statistics', description='统计方式'),
  threshold?: float(name='threshold', description='阈值'),
  timeWindow?: int32(name='timeWindow', description='时间窗口'),
}

model ByTimeScalingRule {
  endTime?: long(name='endTime', description='结束时间戳（秒）'),
  launchTime?: long(name='launchTime', description='启动时间戳（秒）'),
  recurrenceType?: string(name='recurrenceType', description='指定时间规则的执行类型'),
  recurrenceValue?: string(name='recurrenceValue', description='重复执行定时任务的数值'),
}

model ByTimeScalingRuleSpec {
  endTime?: long(name='endTime', description='结束时间戳（秒）'),
  launchTime?: long(name='launchTime', description='启动时间戳（秒）'),
  recurrenceType?: string(name='recurrenceType', description='指定时间规则的执行类型'),
  recurrenceValue?: string(name='recurrenceValue', description='重复执行定时任务的数值'),
}

model CancelClusterOrdersParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model CancelOrderGroupParam {
  orderGroupId?: string(name='orderGroupId', description='订单组ID'),
  userId?: long(name='userId', description='用户ID'),
}

model ClusterBaseParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  creator?: string(name='creator', description='creator'),
  modifier?: string(name='modifier', description='modifier'),
  product?: string(name='product', description='product'),
  regionId?: string(name='regionId', description='regionId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ClusterDTO {
  autoRenew?: boolean(name='autoRenew', description='autoRenew'),
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterName?: string(name='clusterName', description='clusterName'),
  clusterStatus?: string(name='clusterStatus', description='clusterStatus'),
  clusterType?: string(name='clusterType', description='clusterType'),
  creator?: string(name='creator', description='creator'),
  deployMode?: string(name='deployMode', description='deployMode'),
  deploymentSetId?: string(name='deploymentSetId', description='deploymentSetId'),
  depositType?: string(name='depositType', description='depositType'),
  enableDeploymentSet?: boolean(name='enableDeploymentSet', description='enableDeploymentSet'),
  expireTime?: long(name='expireTime', description='expireTime'),
  failReason?: string(name='failReason', description='failReason'),
  gmtCreate?: long(name='gmtCreate', description='gmtCreate'),
  gmtModified?: long(name='gmtModified', description='gmtModified'),
  hasUncompletedOrder?: boolean(name='hasUncompletedOrder', description='hasUncompletedOrder'),
  iaaSType?: string(name='iaaSType', description='iaaSType'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  modifier?: string(name='modifier', description='modifier'),
  nodeRamRole?: string(name='nodeRamRole', description='nodeRamRole'),
  paymentType?: string(name='paymentType', description='paymentType'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  regionId?: string(name='regionId', description='regionId'),
  resourceOwnerId?: string(name='resourceOwnerId', description='resourceOwnerId'),
  securityMode?: string(name='securityMode', description='securityMode'),
  vpcId?: string(name='vpcId', description='vpcId'),
}

model ClusterDisk {
  category?: string(name='category', description='category'),
  device?: string(name='device', description='device'),
  diskId?: string(name='diskId', description='diskId'),
  mountPath?: string(name='mountPath', description='mountPath'),
  nodeId?: string(name='nodeId', description='nodeId'),
  paymentType?: string(name='paymentType', description='paymentType'),
  realMountPath?: string(name='realMountPath', description='realMountPath'),
  serialNumber?: string(name='serialNumber', description='serialNumber'),
  size?: long(name='size', description='size'),
  status?: string(name='status', description='status'),
  type?: string(name='type', description='type'),
}

model ClusterPriceDTO {
  code?: string(name='code', description='code'),
  currency?: string(name='currency', description='currency'),
  discountAmount?: double(name='discountAmount', description='discountAmount'),
  handlingFeeAmount?: double(name='handlingFeeAmount', description='handlingFeeAmount'),
  message?: string(name='message', description='message'),
  originalAmount?: double(name='originalAmount', description='originalAmount'),
  product?: string(name='product', description='product'),
  riCycleAmount?: double(name='riCycleAmount', description='riCycleAmount'),
  ruleIds?: [ long ](name='ruleIds', description='ruleIds'),
  taxAmount?: double(name='taxAmount', description='taxAmount'),
  tradeAmount?: double(name='tradeAmount', description='tradeAmount'),
}

model ClusterScriptDTO {
  clusterId?: string(name='clusterId', description='clusterId'),
  executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
  executeMoment?: string(name='executeMoment', description='executeMoment'),
  executeScope?: string(name='executeScope', description='executeScope'),
  executeScopeParams?: string(name='executeScopeParams', description='executeScopeParams'),
  lastEditTime?: long(name='lastEditTime', description='lastEditTime'),
  scriptArgs?: string(name='scriptArgs', description='scriptArgs'),
  scriptContent?: string(name='scriptContent', description='scriptContent'),
  scriptContentSpec?: string(name='scriptContentSpec', description='scriptContentSpec'),
  scriptName?: string(name='scriptName', description='scriptName'),
  scriptPath?: string(name='scriptPath', description='scriptPath'),
  scriptType?: string(name='scriptType', description='scriptType'),
}

model ClusterType {
  clusterTypeSpec?: ClusterTypeSpec(name='ClusterTypeSpec'),
  applicationDTOList?: [
    MainVersionApplicationParam
  ](name='applicationDTOList', description='taihaoMainVersionApplicationParam'),
  clusterType?: string(name='clusterType', description='clusterType'),
  display?: boolean(name='display', description='display'),
  excludeUserList?: string(name='excludeUserList', description='excludeUserList'),
  whiteUserIds?: string(name='whiteUserIds', description='whiteUserIds'),
}

model ClusterTypeDTO {
  applicationDTOList?: [
    MainVersionApplicationDTO
  ](name='applicationDTOList', description='applicationDTOList'),
  clusterType?: string(name='clusterType', description='clusterType'),
}

model ClusterTypeMeta {
  applicationNames?: [ string ](name='applicationNames', description='applicationNames'),
  clusterType?: string(name='clusterType', description='clusterType'),
  excludeUserIds?: string(name='excludeUserIds', description='excludeUserIds'),
  iaasType?: string(name='iaasType', description='iaasType'),
  visibleType?: string(name='visibleType', description='visibleType'),
  whiteUserIds?: string(name='whiteUserIds', description='whiteUserIds'),
}

model ClusterTypeSpec {
  clusterRamRole?: string(name='clusterRamRole', description='clusterRamRole'),
  clusterType?: string(name='clusterType', description='clusterType'),
  extraParams?: [
    ExtraParamSpec
  ](name='extraParams', description='extraParams'),
  haType?: string(name='haType', description='haType'),
  metaStoreTypes?: [ string ](name='metaStoreTypes'),
  nodeCountConstraints?: [
    NodeCountConstraint
  ](name='nodeCountConstraints', description='nodeCountConstraints'),
  nodeGroupSpecs?: [
    NodeGroupSpec
  ](name='nodeGroupSpecs', description='nodeGroupSpecs'),
  realign?: boolean(name='realign', description='realign'),
  scenario?: string(name='scenario', description='scenario'),
}

model ClusterUserDTO {
  password?: string(name='Password', description='password'),
  description?: string(name='description', description='description'),
  userId?: string(name='userId', description='userId'),
  userName?: string(name='userName', description='userName'),
  userType?: string(name='userType', description='userType'),
}

model ComponentDTO {
  affinityComponents?: [ string ](name='affinityComponents', description='affinityComponents'),
  antiAffinityComponents?: [ string ](name='antiAffinityComponents', description='antiAffinityComponents'),
  componentType?: string(name='componentType', description='componentType'),
  description?: string(name='description', description='description'),
  name?: string(name='name', description='name'),
  nodeConstraints?: [
    NodeConstraint
  ](name='nodeConstraints', description='nodeConstraints'),
}

model ComponentMeta {
  affinityComponents?: [ string ](name='affinityComponents', description='affinityComponents'),
  antiAffinityComponents?: [ string ](name='antiAffinityComponents', description='antiAffinityComponents'),
  deployModeNodeCountConstraints?: [
    DeployModeNodeCountConstraint
  ](name='deployModeNodeCountConstraints', description='deployModeNodeCountConstraints'),
  description?: string(name='description', description='description'),
  layoutNodeGroups?: [ string ](name='layoutNodeGroups', description='layoutNodeGroups'),
  layoutType?: string(name='layoutType', description='layoutType'),
  name?: string(name='name', description='name'),
}

model ComponentMetaDTO {
  affinityComponents?: [ string ](name='affinityComponents', description='affinityComponents'),
  antiAffinityComponents?: [ string ](name='antiAffinityComponents', description='antiAffinityComponents'),
  componentName?: string(name='componentName', description='componentName'),
  description?: string(name='description', description='description'),
  nodeConstraints?: [
    NodeConstraint
  ](name='nodeConstraints', description='nodeConstraint'),
}

model ConfigFileMeta {
  configItems?: [
    ConfigItemMeta
  ](name='configItems', description='configItems'),
  description?: string(name='description', description='description'),
  index?: long(name='index', description='index'),
  name?: string(name='name', description='name'),
  readOnly?: boolean(name='readOnly', description='readOnly'),
  visible?: boolean(name='visible', description='visible'),
}

model ConfigItem {
  configItemDefaultValue?: string(name='configItemDefaultValue', description='configItemDefaultValue'),
  configItemKey?: string(name='configItemKey', description='configItemKey'),
  configItemType?: string(name='configItemType', description='configItemType'),
}

model ConfigItemKey {
  key?: string(name='key', description='key'),
  name?: string(name='name', description='name'),
}

model ConfigItemMeta {
  description?: string(name='description', description='description'),
  name?: string(name='name', description='name'),
  readOnly?: boolean(name='readOnly', description='readOnly'),
  tags?: [ string ](name='tags', description='tags'),
  visible?: boolean(name='visible', description='visible'),
}

model CostOptimizedConfig {
  onDemandBaseCapacity?: int32(name='onDemandBaseCapacity', description='onDemandBaseCapacity'),
  onDemandPercentageAboveBaseCapacity?: int32(name='onDemandPercentageAboveBaseCapacity', description='onDemandPercentageAboveBaseCapacity'),
  spotInstancePools?: int32(name='spotInstancePools', description='spotInstancePools'),
}

model CreateAutoScalingPolicyParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupId?: string(name='nodeGroupId', description='ACK集群 此字段为空'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingRules?: [
    ScalingRule
  ](name='scalingRules', description='弹性伸缩规则列表'),
}

model CreateAutoScalingRuleParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='scalingPolicyId'),
  scalingRuleSpec?: ScalingRuleSpec(name='scalingRuleSpec', description='scalingRuleSpec'),
}

model CreateBindingAckClusterParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  ackNodePools?: [ 
    {
      nodePoolId?: string(name='nodePoolId', description='nodePoolId'),
      nodeSelector?: NodeSelector(name='nodeSelector'),
    }
  ](name='ackNodePools', description='ackNodePools'),
  ackNodes?: [ 
    {
      nodeId?: string(name='nodeId', description='nodeId'),
      nodeSelector?: NodeSelector(name='nodeSelector'),
    }
  ](name='ackNodes', description='ackNodes'),
  applicationList?: [ 
    {
      applicationName?: string(name='applicationName', description='applicationName'),
      applicationVersion?: string(name='applicationVersion', description='applicationVersion'),
    }
  ](name='applicationList', description='applicationList'),
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterName?: string(name='clusterName', description='clusterName'),
  clusterType?: string(name='clusterType', description='clusterType'),
  namespace?: string(name='namespace', description='namespace'),
  nodeLabel?: KubeNodeLabelDTO(name='nodeLabel'),
  oauthCallbackUrl?: string(name='oauthCallbackUrl', description='oauthCallbackUrl'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  ossPath?: string(name='ossPath', description='ossPath'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  productSelectors?: NodeSelector(name='productSelectors', description='productSelectors'),
  resourceGroupId?: string(name='resourceGroupId', description='resourceGroupId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  token?: string(name='token', description='token'),
}

model CreateClusterNodeGroupParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupParam?: NodeGroupParam(name='nodeGroupParam', description='nodeGroupParam'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model CreateClusterParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterName?: string(name='clusterName', description='clusterName'),
  clusterScriptList?: [
    ClusterScriptDTO
  ](name='clusterScriptList', description='clusterScriptList'),
  clusterType?: string(name='clusterType', description='clusterType'),
  deployMode?: string(name='deployMode', description='deployMode'),
  depositType?: string(name='depositType', description='depositType'),
  iaaSType?: string(name='iaaSType', description='iaaSType'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  paymentType?: string(name='paymentType', description='paymentType'),
  resourceGroupId?: string(name='resourceGroupId', description='resourceGroupId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  securityMode?: string(name='securityMode', description='securityMode'),
  tagList?: [
    Tag
  ](name='tagList', description='tagList'),
  vpcId?: string(name='vpcId', description='vpcId'),
}

model CreateClusterScriptParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
  executeMoment?: string(name='executeMoment', description='executeMoment'),
  executeScope?: string(name='executeScope', description='executeScope'),
  executeScopeParams?: string(name='executeScopeParams', description='executeScopeParams'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scriptArgs?: string(name='scriptArgs', description='clusterScriptArgs'),
  scriptContent?: string(name='scriptContent', description='clusterScriptContent'),
  scriptContentSpec?: string(name='scriptContentSpec', description='clusterScriptContentSpec'),
  scriptName?: string(name='scriptName', description='clusterScriptName'),
  scriptPath?: string(name='scriptPath', description='clusterScriptPath'),
  scriptType?: string(name='scriptType', description='clusterScriptType'),
}

model CreateClusterUserParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  description?: string(name='description', description='description'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  password?: string(name='password', description='password'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  userId?: string(name='userId', description='userId'),
  userName?: string(name='userName', description='userId'),
  userType?: string(name='userType', description='userType'),
}

model CreateFullClusterByMainVersionParam {
  applicationComponentDeployments?: [
    ApplicationComponentDeploymentParam
  ](name='applicationComponentDeployments', description='applicationComponentDeployments'),
  applicationConfigs?: [
    ApplicationConfigParam
  ](name='applicationConfigs', description='applicationConfigs'),
  applications?: [
    ApplicationParam
  ](name='applications', description='applications'),
  autoRecommendConfig?: boolean(name='autoRecommendConfig', description='autoRecommendConfig'),
  clientToken?: string(name='clientToken', description='clientToken'),
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterName?: string(name='clusterName', description='clusterName'),
  clusterScripts?: [
    ClusterScriptDTO
  ](name='clusterScripts', description='clusterScripts'),
  clusterType?: string(name='clusterType', description='clusterType'),
  clusterUsers?: [
    ClusterUserDTO
  ](name='clusterUsers', description='clusterUsers'),
  deployMode?: string(name='deployMode', description='deployMode'),
  depositType?: string(name='depositType', description='depositType'),
  description?: string(name='description', description='description'),
  enableDeploymentSet?: boolean(name='enableDeploymentSet', description='enableDeploymentSet'),
  iaaSType?: string(name='iaaSType', description='iaaSType'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  nodeGroupParams?: [
    NodeGroupParam
  ](name='nodeGroupParams', description='nodeGroupParams'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  optionalApplications?: [
    ApplicationParam
  ](name='optionalApplications', description='optionalApplications'),
  paymentType?: string(name='paymentType', description='paymentType'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceGroupId?: string(name='resourceGroupId', description='resourceGroupId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  securityMode?: string(name='securityMode', description='securityMode'),
  tagList?: [
    Tag
  ](name='tagList', description='tagList'),
  vpcId?: string(name='vpcId', description='vpcId'),
}

model CreateFullClusterParam {
  applicationComponentDeployments?: [
    ApplicationComponentDeploymentParam
  ](name='applicationComponentDeployments', description='applicationComponentDeployments'),
  applicationConfigs?: [
    ApplicationConfigParam
  ](name='applicationConfigs', description='applicationConfigs'),
  applications?: [
    ApplicationParam
  ](name='applications', description='applications'),
  autoRecommendConfig?: boolean(name='autoRecommendConfig', description='autoRecommendConfig'),
  clientToken?: string(name='clientToken', description='clientToken'),
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterName?: string(name='clusterName', description='clusterName'),
  clusterScripts?: [
    ClusterScriptDTO
  ](name='clusterScripts', description='clusterScripts'),
  clusterType?: string(name='clusterType', description='clusterType'),
  deployMode?: string(name='deployMode', description='deployMode'),
  depositType?: string(name='depositType', description='depositType'),
  description?: string(name='description', description='description'),
  enableDeploymentSet?: boolean(name='enableDeploymentSet', description='enableDeploymentSet'),
  iaaSType?: string(name='iaaSType', description='iaaSType'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  nodeGroupParams?: [
    NodeGroupParam
  ](name='nodeGroupParams', description='nodeGroupParams'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  optionalApplications?: [
    ApplicationParam
  ](name='optionalApplications', description='optionalApplications'),
  paymentType?: string(name='paymentType', description='paymentType'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceGroupId?: string(name='resourceGroupId', description='resourceGroupId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  securityMode?: string(name='securityMode', description='securityMode'),
  tagList?: [
    Tag
  ](name='tagList', description='tagList'),
  vpcId?: string(name='vpcId', description='vpcId'),
}

model CreateMainVersionParam {
  imageId?: string(name='imageId', description='status'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  mainVersionMeta?: MainVersionMeta(name='mainVersionMeta'),
  releaseType?: string(name='releaseType', description='imageId'),
  uuid?: string(name='uuid', description='type'),
}

model CreateStackApplicationParam {
  name?: string(name='name', description='应用名称'),
  version?: string(name='version', description='应用版本'),
}

model DecreaseNodeGroupParam {
  clientToken?: string(name='clientToken', description='clientToken'),
  clusterId?: string(name='clusterId', description='clusterId'),
  deleteNodeIds?: [ string ](name='deleteNodeIds', description='deleteNodeIds'),
  deleteNumber?: long(name='deleteNumber', description='deleteNumber'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model DeleteAutoScalingPolicyParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='scalingPolicyId'),
}

model DeleteAutoScalingRuleParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingRuleId?: string(name='scalingRuleId', description='scalingRuleId'),
}

model DeleteClusterScriptParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scriptId?: string(name='scriptId', description='clusterScriptId'),
}

model DeleteClusterUserParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  userId?: string(name='userId', description='userId'),
  userType?: string(name='userType', description='userType'),
}

model DeleteKubeCustomerResourcesParam {
  apiGroup?: string(name='apiGroup', description='apiGroup'),
  apiPlural?: string(name='apiPlural', description='apiPlural'),
  apiVersion?: string(name='apiVersion', description='apiVersion'),
  clusterId?: string(name='clusterId', description='clusterId'),
  name?: string(name='name', description='name'),
  namespace?: string(name='namespace', description='namespace'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model DeleteKubeNativeResourcesParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  fieldSelector?: string(name='fieldSelector', description='fieldSelector'),
  labelSelector?: string(name='labelSelector', description='labelSelector'),
  name?: string(name='name', description='name'),
  namespace?: string(name='namespace', description='namespace'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  resourceTypePlural?: string(name='resourceTypePlural', description='resourceTypePlural'),
}

model DeleteNodeGroupParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  description?: string(name='description', description='description'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
}

model DeleteStackApplicationParam {
  name?: string(name='name', description='应用名称'),
  version?: string(name='version', description='应用版本'),
}

model DependConfig {
  conditionTargets?: [ string ](name='conditionTargets', description='conditionTargets'),
  conditionType?: string(name='conditionType', description='conditionType'),
  configFileName?: string(name='configFileName', description='configFileName'),
  configItems?: [
    ConfigItem
  ](name='configItems', description='configItems'),
}

model DeployApplicationParam {
  applicationComponentDeploymentList?: [ 
    {
      applicationName?: string(name='applicationName', description='applicationName'),
      componentName?: string(name='componentName', description='componentName'),
      deployScope?: string(name='deployScope', description='deployScope'),
      nodeGroupIdList?: [ string ](name='nodeGroupIdList', description='nodeGroupIdList'),
      nodeIdList?: [ string ](name='nodeIdList', description='nodeIdList'),
    }
  ](name='applicationComponentDeploymentList', description='applicationComponentDeploymentList'),
  applicationConfigList?: [ 
    {
      applicationName?: string(name='applicationName', description='applicationName'),
      configFileName?: string(name='configFileName', description='configFileName'),
      configItemKey?: string(name='configItemKey', description='configItemKey'),
      configItemValue?: string(name='configItemValue', description='configItemValue'),
      nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
      nodeId?: string(name='nodeId', description='nodeId'),
    }
  ](name='applicationConfigList', description='applicationConfigList'),
  applicationList?: [ 
    {
      applicationName?: string(name='applicationName', description='applicationName'),
      applicationVersion?: string(name='applicationVersion', description='applicationVersion'),
    }
  ](name='applicationList', description='applicationList'),
  autoRecommendConfig?: boolean(name='autoRecommendConfig', description='autoRecommendConfig'),
  clusterId?: string(name='clusterId', description='clusterId'),
  description?: string(name='description', description='description'),
  nodeIdList?: [ string ](name='nodeIdList', description='nodeIdList'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model DeployModeDependency {
  dependApplications?: [ string ](name='dependApplications', description='dependApplications'),
  dependConfigs?: [
    DependConfig
  ](name='dependConfigs', description='dependConfigs'),
  deployMode?: string(name='deployMode', description='deployMode'),
}

model DeployModeNodeCountConstraint {
  deployMode?: string(name='deployMode', description='deployMode'),
  nodeCountConstraint?: IntValueConstraint(name='nodeCountConstraint', description='nodeCountConstraint'),
}

model DeployModeSpec {
  applicationDTOList?: [
    MainVersionApplicationDTO
  ](name='ApplicationDTOList', description='applicationDTOList'),
  deployMode?: string(name='DeployMode', description='deployMode'),
}

model DisableAutoScalingPolicyParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='scalingPolicyId'),
}

model DiskConstraint {
  categories?: [ string ](name='categories', description='DiskCategoryEnum'),
  diskCountConstraint?: IntValueConstraint(name='diskCountConstraint', description='diskCountConstraint'),
  diskSizeConstraint?: IntValueConstraint(name='diskSizeConstraint', description='diskSizeConstraint'),
}

model DiskConstraintSpec {
  defaultValue?: long(name='defaultValue', description='defaultValue'),
  end?: long(name='end', description='end'),
  start?: long(name='start', description='start'),
  step?: long(name='step', description='step'),
  type?: string(name='type', description='type'),
}

model EnableAutoScalingPolicyParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='scalingPolicyId'),
}

model ExecuteClusterScriptParam {
  clientToken?: string(name='clientToken', description='clientToken'),
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scriptIds?: [ string ](name='scriptIds', description='scriptIds'),
}

model ExtraParamSpec {
  defaultValue?: string(name='defaultValue', description='defaultValue'),
  key?: string(name='key', description='key'),
  readonly?: boolean(name='readonly', description='readonly'),
}

model GetApplicationActionsParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  componentName?: string(name='componentName', description='componentName'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetAutoScalingActivityParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingActivityId?: string(name='scalingActivityId', description='弹性伸缩活动ID'),
}

model GetAutoScalingPolicyParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='弹性伸缩策略ID'),
}

model GetClusterOperationNodeParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  operationNodeId?: long(name='operationNodeId', description='operationNodeId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetClusterOperationParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetClusterOperationTaskLogParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  operationNodeId?: long(name='operationNodeId', description='operationNodeId'),
  operationTaskId?: long(name='operationTaskId', description='operationTaskId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetClusterOperationsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetClusterScriptDetailParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterScriptId?: string(name='clusterScriptId', description='clusterScriptId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetConfigTagsParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
}

model GetDependApplicationsParam {
  applicationList?: [
    ApplicationParam
  ](name='applicationList'),
  deployMode?: string(name='deployMode', description='部署类型。'),
  mainVersion?: string(name='mainVersion', description='主版本。'),
}

model GetInstanceParam {
  instanceIds?: [ string ](name='instanceIds', description='instanceIds'),
  resourceType?: string(name='resourceType', description='resourceType'),
  userId?: long(name='userId', description='userId'),
}

model GetMainVersionDetailParam {
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model GetReport {
  children?: [
    ViewChild
  ](name='children', description='children'),
  name?: string(name='name', description='name'),
  title?: string(name='title', description='title'),
}

model GetReportDataParam {
  clusterId?: string(name='clusterId', description='cluster id'),
  detailData?: boolean(name='detailData', description='is deatil'),
  name?: string(name='name', description='view name'),
  reportId?: string(name='reportId', description='report Id'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='user id'),
}

model GetReportDataResult {
  reportDatas?: [
    ReportData
  ](name='reportDatas', description='data'),
  time?: long(name='time', description='time'),
}

model GetReportParam {
  clusterId?: string(name='clusterId', description='cluster id'),
  reportId?: string(name='reportId', description='report id'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='uid'),
}

model GetReportResult {
  children?: [
    ViewChild
  ](name='children', description='children'),
  name?: string(name='name', description='name'),
  reportTime?: long(name='reportTime', description='report time'),
  title?: string(name='title', description='title'),
}

model GetStackApplicationParam {
  name?: string(name='name', description='应用名称'),
  version?: string(name='version', description='应用版本'),
}

model GetWorkflowDefinitionParam {
  workflowDefinitionId?: long(name='workflowDefinitionId', description='工作流定义Id'),
}

model GetWorkflowInstanceParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model HealthSummary {
  badCount?: int32(name='badCount', description='异常数'),
  goodCount?: int32(name='goodCount', description='良好数'),
  noneCount?: int32(name='noneCount', description='无状态数'),
  resourceType?: string(name='resourceType', description='资源类型'),
  stoppedCount?: int32(name='stoppedCount', description='停止数'),
  totalCount?: int32(name='totalCount', description='组件实例总数'),
  unknownCount?: int32(name='unknownCount', description='未知数'),
  warningCount?: int32(name='warningCount', description='警告数'),
}

model IncreaseDiskParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupDiskResizeInfos?: [ 
    {
      newDiskSize?: string(name='newDiskSize', description='newDiskSize'),
      nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
    }
  ](name='nodeGroupDiskResizeInfos', description='nodeGroupDiskResizeInfos'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  rollingRestart?: boolean(name='rollingRestart', description='rollingRestart'),
  token?: string(name='token', description='token'),
}

model IncreaseNodeGroupParam {
  addCount?: int32(name='addCount', description='addCount'),
  applicationConfigs?: [
    ApplicationConfigParam
  ](name='applicationConfigs', description='applicationConfigs'),
  autoRenew?: boolean(name='autoRenew', description='autoRenew'),
  autoRenewPeriod?: int32(name='autoRenewPeriod', description='autoRenewPeriod'),
  autoRenewPeriodUnit?: string(name='autoRenewPeriodUnit', description='autoRenewPeriodUnit'),
  clientToken?: string(name='clientToken', description='clientToken'),
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  period?: int32(name='period', description='period'),
  periodUnit?: string(name='periodUnit', description='periodUnit'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model InstanceDTO {
  autoRenewal?: boolean(name='autoRenewal', description='autoRenewal'),
  autoRenewalDuration?: long(name='autoRenewalDuration', description='autoRenewalDuration'),
  bid?: string(name='bid', description='bid'),
  commodityCode?: string(name='commodityCode', description='commodityCode'),
  endTime?: long(name='endTime', description='endTime'),
  instanceId?: string(name='instanceId', description='instanceId'),
  marketType?: string(name='marketType', description='marketType'),
  orderId?: long(name='orderId', description='orderId'),
  paymentType?: string(name='paymentType', description='paymentType'),
  regionId?: string(name='regionId', description='regionId'),
  releaseTime?: long(name='releaseTime', description='releaseTime'),
  resourceType?: string(name='resourceType', description='resourceType'),
  status?: string(name='status', description='status'),
  userId?: long(name='userId', description='userId'),
}

model IntValueConstraint {
  defaultValue?: long(name='defaultValue', description='defaultValue'),
  max?: long(name='max', description='max'),
  min?: long(name='min', description='min'),
  step?: long(name='step', description='step'),
  type?: string(name='type', description='type'),
  values?: [ long ](name='values', description='values'),
}

model JoinResourceGroupParam {
  operateUserId?: string(name='operateUserId', description='操作人员ID'),
  resourceGroupId?: string(name='resourceGroupId', description='目标资源组ID'),
  resourceId?: string(name='resourceId', description='资源ID'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='资源所有者ID'),
  resourceType?: string(name='resourceType', description='资源类型'),
}

model KubeNodeLabelDTO {
  label?: Label(name='label'),
  taint?: Taint(name='taint'),
}

model Label {
  key?: string(name='key', description='key'),
  value?: string(name='value', description='value'),
}

model ListAckClusterNodePoolsParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  product?: string(name='product', description='product'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  productSelectors?: NodeSelector(name='productSelectors'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListAckClusterNodesParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productSelectors?: NodeSelector(name='productSelectors'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  skippedNodePools?: [ string ](name='skippedNodePools', description='skippedNodePools'),
}

model ListApplicationMetaParam {
  applicationNames?: [ string ](name='applicationNames', description='applicationNames'),
  deployMode?: string(name='deployMode', description='deployMode'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
}

model ListApplicationsParam {
  applicationNameList?: [ string ](name='applicationNameList', description='applicationNameList'),
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
}

model ListAutoScalingActivitiesParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  endTime?: long(name='endTime', description='endTime'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingActivityStates?: [ string ](name='scalingActivityStates', description='scalingActivityStates'),
  scalingActivityType?: string(name='scalingActivityType', description='scalingActivityType'),
  scalingPolicyId?: string(name='scalingPolicyId', description='scalingPolicyId'),
  startTime?: long(name='startTime', description='startTime'),
}

model ListAutoScalingMetricsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListAutoScalingPoliciesParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyStatus?: string(name='scalingPolicyStatus', description='scalingPolicyStatus'),
}

model ListAutoScalingRulesParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='scalingPolicyId'),
  scalingRuleStatus?: string(name='scalingRuleStatus', description='scalingRuleStatus'),
  scalingRuleType?: string(name='scalingRuleType', description='scalingRuleType'),
}

model ListClusterAckByInstanceIdsParam {
  instanceIds?: [ string ](name='instanceIds', description='instanceIds'),
}

model ListClusterAckClusterByClusterIdsParam {
  clusterIds?: [ string ](name='clusterIds', description='clusterIds'),
}

model ListClusterNodeGroupsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupIdList?: [ string ](name='nodeGroupIdList', description='nodeGroupIdList'),
  nodeGroupNameList?: [ string ](name='nodeGroupNameList', description='nodeGroupNameList'),
  nodeGroupTypeList?: [ string ](name='nodeGroupTypeList', description='nodeGroupTypeList'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
  statusList?: [ string ](name='statusList', description='statusList'),
}

model ListClusterOperationNodesParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  parentOperationNodeId?: long(name='parentOperationNodeId', description='parentOperationNodeId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListClusterOperationTasksParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeId?: string(name='nodeId', description='nodeId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  operationNodeId?: long(name='operationNodeId', description='operationNodeId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
  statusList?: [ string ](name='statusList', description='statusList'),
}

model ListClusterOperationsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationType?: string(name='operationType', description='operationType'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  product?: string(name='product', description='product'),
  queryEndTime?: long(name='queryEndTime', description='queryEndTime'),
  queryStartTime?: long(name='queryStartTime', description='queryStartTime'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  resourceType?: string(name='resourceType', description='resourceType'),
  sort?: string(name='sort', description='sort'),
  statusList?: [ string ](name='statusList', description='statusList'),
  tokens?: [ string ](name='tokens', description='tokens'),
}

model ListClusterOrdersParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  orderStatus?: string(name='orderStatus', description='orderStatus'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListClusterScriptsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
  executeMoment?: string(name='executeMoment', description='executeMoment'),
  executeScope?: string(name='executeScope', description='executeScope'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  queryEndTime?: long(name='queryEndTime', description='queryEndTime'),
  queryStartTime?: long(name='queryStartTime', description='queryStartTime'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scriptName?: string(name='scriptName', description='clusterScriptName'),
  scriptType?: string(name='scriptType', description='clusterScriptType'),
}

model ListClusterUserParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  userId?: string(name='userId', description='userId'),
  userName?: string(name='userName', description='userName'),
  userType?: string(name='userType', description='userType'),
}

model ListClustersParam {
  clusterIdList?: [ string ](name='clusterIdList', description='clusterIdList'),
  clusterName?: string(name='clusterName', description='clusterName'),
  clusterTypes?: [ string ](name='clusterTypes', description='clusterTypes'),
  iaaSTypes?: [ string ](name='iaaSTypes', description='iaaSTypes'),
  maxResults?: int32(name='maxResults', description='pageSize'),
  nextToken?: string(name='nextToken', description='pageNumber'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  paymentTypeList?: [ string ](name='paymentTypeList', description='paymentTypeList'),
  queryEndTime?: long(name='queryEndTime', description='queryEndTime'),
  queryStartTime?: long(name='queryStartTime', description='queryStartTime'),
  resourceGroupIds?: [ string ](name='resourceGroupIds', description='resourceGroupIds'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
  statusList?: [ string ](name='statusList', description='statusList'),
}

model ListComponentInstancesParam {
  applicationNameList?: [ string ](name='applicationNameList', description='applicationNameList'),
  clusterId?: string(name='clusterId', description='clusterId'),
  componentNameList?: [ string ](name='componentNameList', description='componentNameList'),
  componentStatusList?: [ string ](name='componentStatusList', description='componentStatusList'),
  nodeIdList?: [ string ](name='nodeIdList', description='nodeIdList'),
  nodeNameList?: [ string ](name='nodeNameList', description='nodeNameList'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListComponentsParam {
  applicationNameList?: [ string ](name='applicationNameList', description='applicationNameList'),
  clusterId?: string(name='clusterId', description='clusterId'),
  componentNameList?: [ string ](name='componentNameList', description='componentNameList'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListConfigFilesParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  nodeId?: string(name='nodeId', description='nodeId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
}

model ListConfigHistoryParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  configFileName?: string(name='configFileName', description='configFileName'),
  configItemKey?: string(name='configItemKey', description='configItemKey'),
  configVersion?: string(name='configVersion', description='configVersion'),
  description?: string(name='description', description='description'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  nodeId?: string(name='nodeId', description='nodeId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
}

model ListConfigVersionsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  configVersion?: string(name='configVersion', description='configVersion'),
  description?: string(name='description', description='description'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
}

model ListConfigsParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  configFileName?: string(name='configFileName', description='configFileName'),
  configItemKey?: string(name='configItemKey', description='configItemKey'),
  configScope?: string(name='configScope', description='configScope'),
  configType?: string(name='configType', description='configType'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  nodeId?: string(name='nodeId', description='nodeId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
  tagNames?: [ string ](name='tagNames', description='tagName'),
}

model ListKubeCustomerResourcesParam {
  apiGroup?: string(name='apiGroup', description='apiGroup'),
  apiPlural?: string(name='apiPlural', description='apiPlural'),
  apiVersion?: string(name='apiVersion', description='apiVersion'),
  clusterId?: string(name='clusterId', description='clusterId'),
  fieldSelector?: string(name='fieldSelector', description='fieldSelector'),
  labelSelector?: string(name='labelSelector', description='labelSelector'),
  name?: string(name='name', description='name'),
  namespace?: string(name='namespace', description='namespace'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListKubeNativeResourcesParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  fieldSelector?: string(name='fieldSelector', description='fieldSelector'),
  labelSelector?: string(name='labelSelector', description='labelSelector'),
  name?: string(name='name', description='name'),
  namespace?: string(name='namespace', description='namespace'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  resourceTypePlural?: string(name='resourceTypePlural', description='resourceTypePlural'),
}

model ListMainVersionDTO {
  iaasType?: string(name='IaasType', description='iaasType'),
  createTime?: string(name='createTime', description='createTime'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  releaseType?: string(name='releaseType', description='releaseType'),
  status?: string(name='status', description='status'),
  type?: string(name='type', description='type'),
}

model ListMainVersionsParam {
  clusterType?: string(name='clusterType', description='clusterType'),
  iaasType?: string(name='iaasType', description='iaasType'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListNodeDiskParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeIdList?: [ string ](name='nodeIdList', description='nodeIdList'),
}

model ListNodeGroupMetaParam {
  componentNames?: [ string ](name='componentNames', description='componentNames'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
}

model ListNodesParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  componentName?: [ string ](name='componentName', description='componentName'),
  nodeFleetIdList?: [ string ](name='nodeFleetIdList', description='nodeFleetIdList'),
  nodeGroupIdList?: [ string ](name='nodeGroupIdList', description='nodeGroupIdList'),
  nodeIds?: [ string ](name='nodeIds', description='nodeIds'),
  nodeNameList?: [ string ](name='nodeNameList', description='nodeNameList'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  orderBy?: [ string ](name='orderBy', description='orderBy'),
  pageNumber?: int32(name='pageNumber', description='pageNumber'),
  pageSize?: int32(name='pageSize', description='pageSize'),
  privateIp?: string(name='privateIp', description='privateIp'),
  publicIp?: string(name='publicIp', description='publicIp'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  sort?: string(name='sort', description='sort'),
  statusList?: [ string ](name='statusList', description='statusList'),
}

model ListOnKubeDedicatedNodesParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  clusterId?: string(name='clusterId', description='clusterId'),
  desireDedicatedNodePools?: [ string ](name='desireDedicatedNodePools', description='desireDedicatedNodePools'),
  nodeLabel?: KubeNodeLabelDTO(name='nodeLabel'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListReportsParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ListReportsResult {
  reportId?: string(name='reportId', description='reportId'),
  reportTime?: long(name='reportTime', description='reportTime'),
  score?: int32(name='score', description='score'),
}

model ListResourceHealthParam {
  applicationName?: string(name='applicationName', description='应用名称'),
  clusterId?: string(name='clusterId', description='clusterId'),
  componentName?: string(name='componentName', description='组件名称'),
  healthStatuses?: [ string ](name='healthStatuses', description='健康状态'),
  nodeIds?: [ string ](name='nodeIds', description='节点Id列表'),
  nodeNames?: [ string ](name='nodeNames', description='节点名称列表'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  resourceType?: string(name='resourceType', description='查询的目标资源类型，合法值：APPLICATION, COMPONENT, COMPONENT_INSTANCE'),
}

model ListStackApplicationParam {
  createTimeEnd?: long(name='createTimeEnd', description='createTimeEnd'),
  createTimeStart?: long(name='createTimeStart', description='createTimeStart'),
  name?: string(name='name', description='name'),
  pageNumber?: long(name='pageNumber', description='pageNumber'),
  pageSize?: long(name='pageSize', description='pageSize'),
}

model ListWorkflowActivityInstancesParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model MainVersionApplicationDTO {
  applicationMetaDTO?: ApplicationMetaDTO(name='applicationMetaDTO', description='applicationMetaDTO'),
  applicationName?: string(name='applicationName', description='applicationName'),
  applicationType?: string(name='applicationType', description='applicationType'),
  applicationVersion?: string(name='applicationVersion', description='applicationVersion'),
  componentDTOs?: [
    ComponentDTO
  ](name='componentDTOs', description='componentDTOs'),
  deployModeDependencies?: [
    DeployModeDependency
  ](name='deployModeDependencies', description='deployModeDependencies'),
  iaasType?: string(name='iaasType', description='iaasType'),
  mandatory?: boolean(name='mandatory', description='mandatory'),
}

model MainVersionApplicationParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  applicationVersion?: string(name='applicationVersion', description='applicationVersion'),
  display?: string(name='display', description='display'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  mandatory?: string(name='mandatory', description='mandatory'),
}

model MainVersionDTO {
  createTime?: string(name='CreateTime', description='createTime'),
  iaasType?: string(name='IaasType', description='iaasType'),
  clusterTypeDTOS?: [
    ClusterTypeDTO
  ](name='clusterTypeDTOS', description='clusterTypeDTOS'),
  ecsRamRole?: string(name='ecsRamRole', description='ecsRamRole'),
  imageId?: string(name='imageId', description='imageId'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  nodeGroupSpecDTOS?: [
    NodeGroupMetaDTO
  ](name='nodeGroupSpecDTOS', description='nodeGroupSpecDTOS'),
  sshSpec?: SshSpec(name='sshSpec'),
  status?: string(name='status', description='status'),
  type?: string(name='type', description='type'),
}

model MainVersionDetailDTO {
  applicationMetaDTOS?: [
    ApplicationMeta
  ](name='applicationMetaDTOS', description='applicationMetaDTOS'),
  clusterTypeMetas?: [
    ClusterTypeMeta
  ](name='clusterTypeMetas', description='clusterTypeMetas'),
  ecsRamRole?: string(name='ecsRamRole', description='ecsRamRole'),
  gmtCreate?: long(name='gmtCreate', description='gmtCreate'),
  gmtModified?: long(name='gmtModified', description='gmtModified'),
  imageId?: string(name='imageId', description='imageId'),
  mainVersion?: string(name='mainVersion', description='mainVersion'),
  nodeGroupMetaDTOS?: [
    NodeGroupMeta
  ](name='nodeGroupMetaDTOS', description='nodeGroupMetaDTOS'),
  passwordLessLogins?: [
    PasswordLessLoginSpec
  ](name='passwordLessLogins', description='passwordLessLogins'),
  product?: string(name='product', description='product'),
  releaseType?: string(name='releaseType', description='releaseType'),
  status?: string(name='status', description='status'),
  uuid?: string(name='uuid', description='uuid'),
}

model MainVersionMeta {
  applicationMetas?: [
    ApplicationMeta
  ](name='applicationMetas', description='applicationMetas'),
  clusterTypeMetas?: [
    ClusterTypeMeta
  ](name='clusterTypeMetas', description='clusterTypeMetas'),
  ecsRamRole?: string(name='ecsRamRole', description='ecsRamRole'),
  gmtModified?: long(name='gmtModified', description='gmtModified'),
  nodeGroupMetas?: [
    NodeGroupMeta
  ](name='nodeGroupMetas', description='nodeGroupMetas'),
  passwordLessLogins?: [
    PasswordLessLoginSpec
  ](name='passwordLessLogins', description='passwordLessLogins'),
}

model Meta {
  score?: int32(name='score', description='score'),
  status?: string(name='status', description='status'),
}

model ModifyClusterScriptParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterScriptArgs?: string(name='clusterScriptArgs', description='clusterScriptArgs'),
  clusterScriptContent?: string(name='clusterScriptContent', description='clusterScriptContent'),
  clusterScriptContentSpec?: string(name='clusterScriptContentSpec', description='clusterScriptContentSpec'),
  clusterScriptId?: string(name='clusterScriptId', description='clusterScriptId'),
  clusterScriptName?: string(name='clusterScriptName', description='clusterScriptName'),
  clusterScriptPath?: string(name='clusterScriptPath', description='clusterScriptPath'),
  clusterScriptType?: string(name='clusterScriptType', description='clusterScriptType'),
  executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
  executeMoment?: string(name='executeMoment', description='executeMoment'),
  executeScope?: string(name='executeScope', description='executeScope'),
  executeScopeParams?: string(name='executeScopeParams', description='executeScopeParams'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ModifyPrepayInstanceSpecParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  instanceTypeConfig?: [ 
    {
      instanceType?: string(name='instanceType', description='instanceType'),
      nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
    }
  ](name='instanceTypeConfig', description='instanceTypeConfig'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  rollingRestart?: boolean(name='rollingRestart', description='rollingRestart'),
  token?: string(name='token', description='token'),
}

model NodeConstraint {
  deployMode?: string(name='deployMode', description='deployMode'),
  max?: long(name='max', description='max'),
  min?: long(name='min', description='min'),
  step?: long(name='step', description='step'),
  type?: string(name='type', description='type'),
  values?: [ long ](name='values', description='values'),
}

model NodeCountConstraint {
  bizNodeGroupType?: string(name='bizNodeGroupType', description='bizNodeGroupType'),
  ha?: Constraint(name='ha'),
  normal?: Constraint(name='normal', description='normal'),
}

model NodeGroupMeta {
  componentTags?: [ string ](name='componentTags', description='componentTags'),
  dataDiskConstraint?: DiskConstraint(name='dataDiskConstraint'),
  mandatory?: boolean(name='mandatory', description='mandatory'),
  nodeGroupType?: string(name='nodeGroupType', description='nodeGroupType'),
  priority?: long(name='priority', description='priority'),
  supportActions?: [ string ](name='supportActions', description='supportActions'),
  systemDiskConstraint?: DiskConstraint(name='systemDiskConstraint'),
}

model NodeGroupMetaDTO {
  componentTags?: [ string ](name='componentTags', description='componentTags'),
  componentTaints?: [ string ](name='componentTaints', description='componentTaints'),
  dataDiskConstraint?: DiskConstraint(name='dataDiskConstraint', description='dataDiskConstraint'),
  nodeGroupType?: string(name='nodeGroupType', description='nodeGroupType'),
  supportActions?: [ string ](name='supportActions', description='supportActions'),
  systemDiskConstraint?: DiskConstraint(name='systemDiskConstraint', description='systemDiskConstraint'),
}

model NodeGroupParam {
  additionalSecurityGroupIds?: [ string ](name='additionalSecurityGroupIds', description='additionalSecurityGroupIds'),
  autoRenew?: boolean(name='autoRenew', description='autoRenew'),
  autoRenewPeriod?: int32(name='autoRenewPeriod', description='autoRenewPeriod'),
  autoRenewPeriodUnit?: string(name='autoRenewPeriodUnit', description='autoRenewPeriodUnit'),
  componentTags?: [ string ](name='componentTags', description='componentTags'),
  costOptimizedConfig?: CostOptimizedConfig(name='costOptimizedConfig'),
  dataDiskCategory?: string(name='dataDiskCategory', description='dataDiskCategory'),
  dataDiskCount?: int32(name='dataDiskCount', description='dataDiskCount'),
  dataDiskSize?: int32(name='dataDiskSize', description='dataDiskSize'),
  description?: string(name='description', description='description'),
  enableDecommissionGracefully?: boolean(name='enableDecommissionGracefully', description='enableDecommissionGracefully'),
  imageId?: string(name='imageId', description='imageId'),
  instanceTypes?: [ string ](name='instanceTypes', description='instanceTypes'),
  internetChargeType?: string(name='internetChargeType', description='internetChargeType'),
  internetMaxBandwidthOut?: int32(name='internetMaxBandwidthOut', description='internetMaxBandwidthOut'),
  keyPairName?: string(name='keyPairName', description='keyPairName'),
  maxSize?: int32(name='maxSize', description='maxSize'),
  minSize?: int32(name='minSize', description='minSize'),
  nodeCount?: int32(name='nodeCount', description='nodeCount'),
  nodeGroupName?: string(name='nodeGroupName', description='nodeGroupName'),
  nodeGroupRole?: string(name='nodeGroupRole', description='nodeGroupRole'),
  nodeRamRole?: string(name='nodeRamRole', description='nodeRamRole'),
  nodeResizeStrategy?: string(name='nodeResizeStrategy', description='nodeResizeStrategy'),
  password?: string(name='password', description='password'),
  paymentType?: string(name='paymentType', description='paymentType'),
  period?: int32(name='period', description='period'),
  periodUnit?: string(name='periodUnit', description='periodUnit'),
  securityGroupId?: string(name='securityGroupId', description='securityGroupId'),
  spotInstanceRemedy?: boolean(name='spotInstanceRemedy', description='spotInstanceRemedy'),
  spotPriceLimits?: [ double ](name='spotPriceLimits', description='spotPriceLimits'),
  spotStrategy?: string(name='spotStrategy', description='spotStrategy'),
  systemDiskCategory?: string(name='systemDiskCategory', description='systemDiskCategory'),
  systemDiskSize?: int32(name='systemDiskSize', description='systemDiskSize'),
  tags?: [ string ](name='tags', description='tags'),
  vswitchIds?: [ string ](name='vswitchIds', description='vswitchIds'),
  withPublicIp?: boolean(name='withPublicIp', description='withPublicIp'),
  zoneId?: string(name='zoneId', description='zoneId'),
}

model NodeGroupSpec {
  bizNodeGroupType?: string(name='bizNodeGroupType', description='bizNodeGroupType'),
  componentLabelList?: [ string ](name='componentLabelList', description='componentLabelList'),
  master?: boolean(name='master', description='master'),
  nodeCountConstraints?: NodeCountConstraint(name='nodeCountConstraints'),
  nodeCountMax?: long(name='nodeCountMax', description='nodeCountMax'),
  nodeCountMin?: long(name='nodeCountMin', description='nodeCountMin'),
  nodeDataDiskCategories?: [ string ](name='nodeDataDiskCategories', description='nodeDataDiskCategories'),
  nodeDataDiskCountDefault?: long(name='nodeDataDiskCountDefault', description='nodeDataDiskCountDefault'),
  nodeDataDiskCountMax?: long(name='nodeDataDiskCountMax', description='nodeDataDiskCountMax'),
  nodeDataDiskCountMin?: long(name='nodeDataDiskCountMin', description='nodeDataDiskCountMin'),
  nodeDataDiskSizeDefault?: long(name='nodeDataDiskSizeDefault', description='nodeDataDiskSizeDefault'),
  nodeDataDiskSizeMax?: long(name='nodeDataDiskSizeMax', description='nodeDataDiskSizeMax'),
  nodeDataDiskSizeMin?: long(name='nodeDataDiskSizeMin', description='nodeDataDiskSizeMin'),
  nodeGroupType?: string(name='nodeGroupType', description='nodeGroupType'),
  nodeSystemDiskCategories?: [ string ](name='nodeSystemDiskCategories', description='nodeSystemDiskCategories'),
  nodeSystemDiskSizeDefault?: long(name='nodeSystemDiskSizeDefault', description='nodeSystemDiskSizeDefault'),
  nodeSystemDiskSizeMax?: long(name='nodeSystemDiskSizeMax', description='nodeSystemDiskSizeMax'),
  nodeSystemDiskSizeMin?: long(name='nodeSystemDiskSizeMin', description='nodeSystemDiskSizeMin'),
  optional?: boolean(name='optional', description='optional'),
  realNodeGroupType?: string(name='realNodeGroupType', description='realNodeGroupType'),
}

model NodeSelector {
  labels?: [ 
    {
      key?: string(name='key', description='key'),
      value?: string(name='value', description='value'),
    }
  ](name='labels', description='labels'),
  taints?: [ 
    {
      effect?: string(name='effect', description='effect'),
      key?: string(name='key', description='key'),
      value?: string(name='value', description='value'),
    }
  ](name='taints', description='taints'),
}

model NoneResponse {
  code?: string(name='code', description='code'),
  message?: string(name='message', description='message'),
  requestId?: string(name='requestId', description='requestId'),
  success?: boolean(name='success', description='success'),
}

model PasswordLessLoginSpec {
  fromNodeGroups?: [ string ](name='fromNodeGroups', description='fromNodeGroups'),
  fromNodeIndexes?: [ string ](name='fromNodeIndexes', description='fromNodeIndexes'),
  userName?: string(name='userName', description='userName'),
}

model PayOrderCallbackParam {
  data?: string(name='data', description='支付回调数据体'),
}

model PreCheckDTO {
  key?: string(name='key', description='校验类型'),
  result?: boolean(name='result', description='校验结果'),
}

model PreCheckParam {
  keys?: [ string ](name='keys', description='校验类型'),
  userId?: long(name='userId', description='用户ID'),
}

model ProductCallerIdParam {
  productCallerId?: string(name='productCallerId', description='productCallerId'),
}

model ProductCallerMappingDTO {
  gmtCreate?: long(name='gmtCreate', description='gmtCreate'),
  gmtModified?: long(name='gmtModified', description='gmtModified'),
  id?: long(name='id', description='id'),
  productCallerId?: string(name='productCallerId', description='productCallerId'),
  productName?: string(name='productName', description='productName'),
}

model ProductNameParam {
  productName?: string(name='productName', description='productName'),
}

model PromotionOption {
  productCode?: string(name='productCode', description='productCode'),
  promotionOptionCode?: string(name='promotionOptionCode', description='promotionOptionCode'),
  promotionOptionNo?: string(name='promotionOptionNo', description='promotionOptionNo'),
}

model QueryGrafanaDataParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  data?: string(name='data', description='data'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model RefreshStackApplicationParam {
  name?: string(name='name', description='应用名称'),
  version?: string(name='version', description='应用版本'),
}

model RegisterClusterAckResourceParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  clusterId?: string(name='clusterId', description='clusterId'),
  namespace?: string(name='namespace', description='namespace'),
  nodeLabel?: string(name='nodeLabel', description='nodeLabel'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  ossPath?: string(name='ossPath', description='ossPath'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ReleaseBindingAckClusterParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  token?: string(name='token', description='token'),
}

model ReleaseClusterParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model ReleaseOnEcsClusterParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model RemoveSuspendPointOnWorkflowInstanceParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='workflowInstanceId'),
}

model RenewClusterParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupIdList?: [ string ](name='nodeGroupIdList', description='nodeGroupIdList'),
  nodeList?: [ 
    {
      instanceId?: string(name='instanceId', description='instanceId'),
      period?: long(name='period', description='period'),
      periodUnit?: string(name='periodUnit', description='periodUnit'),
    }
  ](name='nodeList', description='nodeList'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  period?: long(name='period', description='period'),
  periodUnit?: string(name='periodUnit', description='periodUnit'),
  promotionOption?: PromotionOption(name='promotionOption', description='promotionOption'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scope?: string(name='scope', description='scope'),
  token?: string(name='token', description='token'),
}

model Report {
  clusterId?: string(name='clusterId', description='clusterId'),
  reportId?: string(name='reportId', description='reportId'),
  reportTime?: long(name='reportTime', description='reportTime'),
  score?: int32(name='score', description='score'),
}

model ReportData {
  data?: string(name='data', description='data'),
  score?: int32(name='score', description='score'),
  status?: string(name='status', description='status'),
  type?: string(name='type', description='type'),
}

model RestartWorkflowInstanceParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model ResumeWorkflowInstanceParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model RetryClusterOperationParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  operationNodeId?: long(name='operationNodeId', description='operationNodeId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model RetryClusterOperationTaskParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  operationNodeId?: long(name='operationNodeId', description='operationNodeId'),
  operationTaskId?: long(name='operationTaskId', description='operationTaskId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model RetryWorkflowInstanceParam {
  executionContext?: string(name='executionContext', description='ExecutionContext'),
  signalBizCodeCollection?: string(name='signalBizCodeCollection', description='SignalBizCodeCollectionSignalBizCodeCollection'),
  startActivityInstanceId?: long(name='startActivityInstanceId', description='startActivityInstanceId'),
  workflowInstanceId?: long(name='workflowInstanceId', description='workflowInstanceId'),
  workflowRetryPolicy?: string(name='workflowRetryPolicy', description='WorkflowRetryPolicy'),
}

model RollbackWorkflowInstanceParam {
  executionContext?: string(name='executionContext', description='ExecutionContext'),
  startRollbackActivityInstanceId?: long(name='startRollbackActivityInstanceId', description='StartRollbackActivityInstanceId'),
  workflowInstanceId?: long(name='workflowInstanceId', description='WorkflowInstanceId'),
  workflowRollbackPolicy?: string(name='workflowRollbackPolicy', description='WorkflowRollbackPolicy'),
}

model RunActionParam {
  actionName?: string(name='actionName', description='actionName'),
  actionParams?: map[string]string(name='actionParams', description='actionParams'),
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  componentInstanceParams?: [ 
    {
      componentName?: string(name='componentName', description='componentName'),
      nodeId?: string(name='nodeId', description='nodeId'),
    }
  ](name='componentInstanceParams', description='componentInstanceParams'),
  componentNames?: [ string ](name='componentNames', description='componentNames'),
  description?: string(name='description', description='description'),
  executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
  interval?: int32(name='interval', description='interval'),
  nodeCountPerBatch?: int32(name='nodeCountPerBatch', description='nodeCountPerBatch'),
  nodeGroupIds?: [ string ](name='nodeGroupIds', description='nodeGroupIds'),
  nodeIds?: [ string ](name='nodeIds', description='nodeIds'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  runActionScope?: string(name='runActionScope', description='runActionScope'),
  turnOnMaintenanceMode?: boolean(name='turnOnMaintenanceMode', description='turnOnMaintenanceMode'),
}

model ScalingRule {
  adjustmentValue?: int32(name='adjustmentValue', description='伸缩数量'),
  byLoadScalingRule?: ByLoadScalingRule(name='byLoadScalingRule', description='按负载伸缩参数描述'),
  byTimeScalingRule?: ByTimeScalingRule(name='byTimeScalingRule', description='按时间伸缩参数描述'),
  coolDownInterval?: int32(name='coolDownInterval', description='冷却时间'),
  scalingActivityType?: string(name='scalingActivityType', description='伸缩活动类型'),
  scalingRuleName?: string(name='scalingRuleName', description='规则名称'),
  scalingRuleType?: string(name='scalingRuleType', description='伸缩规则类型'),
}

model ScalingRuleSpec {
  adjustmentValue?: int32(name='adjustmentValue', description='伸缩数量'),
  byLoadScalingRuleSpec?: ByLoadScalingRuleSpec(name='byLoadScalingRuleSpec', description='按负载伸缩参数描述'),
  byTimeScalingRuleSpec?: ByTimeScalingRuleSpec(name='byTimeScalingRuleSpec', description='按时间伸缩参数描述'),
  coolDownInterval?: int32(name='coolDownInterval', description='冷却时间'),
  scalingActivityType?: string(name='scalingActivityType', description='伸缩活动类型'),
  scalingRuleName?: string(name='scalingRuleName', description='规则名称'),
  scalingRuleType?: string(name='scalingRuleType', description='伸缩规则类型'),
}

model SignalWorkflowInstanceParam {
  activityEndStatus?: string(name='activityEndStatus', description='ActivityEndStatus'),
  delayMills?: long(name='delayMills', description='DelayMills'),
  signalBizCodeCollection?: [ string ](name='signalBizCodeCollection', description='SignalBizCodeCollection'),
  workflowInstanceId?: long(name='workflowInstanceId', description='WorkflowInstanceId'),
}

model SkipClusterOperationTaskParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  operationNodeId?: long(name='operationNodeId', description='operationNodeId'),
  operationTaskId?: long(name='operationTaskId', description='operationTaskId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model SkipWorkflowInstanceParam {
  activityIdCollectionRequiredSkip?: [ long ](name='ActivityIdCollectionRequiredSkip', description='ActivityIdCollectionRequiredSkip'),
  workflowInstanceId?: long(name='WorkflowInstanceId', description='WorkflowInstanceId'),
}

model SshSpec {
  passwordLessLogins?: [
    PasswordLessLoginSpec
  ](name='passwordLessLogins', description='passwordLessLogins'),
}

model StringResponse {
  code?: string(name='code', description='code'),
  data?: string(name='data', description='data'),
  message?: string(name='message', description='message'),
  requestId?: string(name='requestId', description='requestId'),
  success?: boolean(name='success', description='success'),
}

model SuspendWorkflowInstanceParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model Tag {
  key?: string(name='key', description='key'),
  value?: string(name='value', description='value'),
}

model Taint {
  effect?: string(name='effect', description='effect'),
  key?: string(name='key', description='key'),
  value?: string(name='value', description='value'),
}

model TerminateClusterOperationParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  operationId?: string(name='operationId', description='operationId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model TerminateWorkflowInstanceParam {
  workflowInstanceId?: long(name='workflowInstanceId', description='工作流实例Id'),
}

model UnRegisterClusterAckResourceParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  clusterId?: string(name='clusterId', description='clusterId'),
  namespace?: string(name='namespace', description='namespace'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model UpdateAckClusterNodePoolsParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  ackNodePools?: [ 
    {
      nodePoolId?: string(name='nodePoolId', description='nodePoolId'),
      nodeSelector?: NodeSelector(name='nodeSelector'),
    }
  ](name='ackNodePools', description='ackNodePools'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  product?: string(name='product', description='product'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  productSelectors?: NodeSelector(name='productSelectors'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model UpdateAckClusterNodesParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  ackNodes?: [ 
    {
      nodeId?: string(name='nodeId', description='nodeId'),
      nodeSelector?: NodeSelector(name='nodeSelector'),
    }
  ](name='ackNodes', description='ackNodes'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productSelectors?: NodeSelector(name='productSelectors'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  skippedNodePools?: [ string ](name='skippedNodePools', description='skippedNodePools'),
}

model UpdateAutoRenewParam {
  autoRenew?: boolean(name='autoRenew', description='是否自动续费'),
  instanceIds?: [ string ](name='instanceIds', description='机器ID'),
  offsetDays?: int32(name='offsetDays', description='抵扣天数'),
  operateUserId?: string(name='operateUserId', description='操作用户'),
  renewDuration?: int32(name='renewDuration', description='续费时长'),
  renewDurationUnit?: string(name='renewDurationUnit', description='续费时长单位'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='主账号'),
  userId?: long(name='userId', description='用户ID'),
}

model UpdateAutoScalingPolicyParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingPolicyId?: string(name='scalingPolicyId', description='弹性伸缩策略ID'),
  scalingRules?: [
    ScalingRule
  ](name='scalingRules', description='弹性伸缩规则列表'),
}

model UpdateAutoScalingRuleParam {
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scalingRuleId?: string(name='scalingRuleId', description='scalingRuleId'),
  scalingRuleSpec?: ScalingRuleSpec(name='scalingRuleSpec', description='scalingRuleSpec'),
}

model UpdateClusterAttributeParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  clusterName?: string(name='clusterName', description='clusterName'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  token?: string(name='token', description='token'),
}

model UpdateClusterNodeGroupParam {
  additionalSecurityGroupIds?: [ string ](name='additionalSecurityGroupIds', description='securityGroupId'),
  clusterId?: string(name='clusterId', description='clusterId'),
  costOptimizedConfig?: CostOptimizedConfig(name='costOptimizedConfig'),
  dataDiskCategory?: string(name='dataDiskCategory', description='dataDiskCategory'),
  description?: string(name='description', description='description'),
  enableDecommissionGracefully?: boolean(name='enableDecommissionGracefully', description='enableDecommissionGracefully'),
  fleetId?: string(name='fleetId', description='fleetId'),
  imageId?: string(name='imageId', description='imageId'),
  instanceTypeList?: [ string ](name='instanceTypeList', description='instanceTypeList'),
  maxSize?: int32(name='maxSize', description='maxSize'),
  minSize?: int32(name='minSize', description='minSize'),
  nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
  nodeName?: string(name='nodeName', description='nodeName'),
  nodeResizeStrategy?: string(name='nodeResizeStrategy', description='nodeResizeStrategy'),
  spotInstanceRemedy?: boolean(name='spotInstanceRemedy', description='spotInstanceRemedy'),
  systemDiskCategory?: string(name='systemDiskCategory', description='systemDiskCategory'),
  vswIdList?: [ string ](name='vswIdList', description='vswIdList'),
  withPublicIp?: boolean(name='withPublicIp', description='withPublicIp'),
  zoneId?: string(name='zoneId', description='zoneId'),
}

model UpdateClusterPaymentTypeParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  nodeGroupIds?: [ string ](name='nodeGroupIds', description='nodeGroupId'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  paymentType?: string(name='paymentType', description='paymentType'),
  period?: long(name='period', description='period'),
  periodUnit?: string(name='periodUnit', description='periodUnit'),
  promotionOption?: PromotionOption(name='promotionOption', description='promotionOption'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  targetExpireTimeMillis?: long(name='targetExpireTimeMillis', description='targetExpireTimeMillis'),
  token?: string(name='token', description='token'),
}

model UpdateClusterScriptParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
  executeMoment?: string(name='executeMoment', description='executeMoment'),
  executeScope?: string(name='executeScope', description='executeScope'),
  executeScopeParams?: string(name='executeScopeParams', description='executeScopeParams'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  scriptArgs?: string(name='scriptArgs', description='clusterScriptArgs'),
  scriptContent?: string(name='scriptContent', description='clusterScriptContent'),
  scriptContentSpec?: string(name='scriptContentSpec', description='clusterScriptContentSpec'),
  scriptId?: string(name='scriptId', description='clusterScriptId'),
  scriptName?: string(name='scriptName', description='clusterScriptName'),
  scriptPath?: string(name='scriptPath', description='clusterScriptPath'),
  scriptType?: string(name='scriptType', description='clusterScriptType'),
}

model UpdateClusterUserParam {
  clusterId?: string(name='clusterId', description='clusterId'),
  description?: string(name='description', description='description'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  password?: string(name='password', description='password'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
  userId?: string(name='userId', description='userId'),
  userType?: string(name='userType', description='userType'),
}

model UpdateConfigParam {
  applicationName?: string(name='applicationName', description='applicationName'),
  clusterId?: string(name='clusterId', description='clusterId'),
  configItemActions?: [ 
    {
      configAction?: string(name='configAction', description='configAction'),
      configFileName?: string(name='configFileName', description='configFileName'),
      configItemKey?: string(name='configItemKey', description='configItemKey'),
      configItemValue?: string(name='configItemValue', description='configItemValue'),
      effectiveActions?: string(name='effectiveActions', description='effectiveActions'),
      effectiveType?: string(name='effectiveType', description='effectiveType'),
      nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
      nodeId?: string(name='nodeId', description='nodeId'),
    }
  ](name='configItemActions', description='configItemActions'),
  description?: string(name='description', description='description'),
  dryRun?: boolean(name='dryRun', description='dryRun'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model UpdateConfigResult {
  configVersion?: string(name='configVersion', description='configVersion'),
  reactivelyChangedConfigs?: [ 
    {
      applicationName?: string(name='applicationName', description='applicationName'),
      configAction?: string(name='configAction', description='configAction'),
      configFileName?: string(name='configFileName', description='configFileName'),
      configItemKey?: string(name='configItemKey', description='configItemKey'),
      configItemValue?: string(name='configItemValue', description='configItemValue'),
      nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
      nodeId?: string(name='nodeId', description='nodeId'),
    }
  ](name='reactivelyChangedConfigs', description='reactivelyChangedConfigs'),
}

model UpdateOnKubeDedicatedNodePoolsParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  clusterId?: string(name='clusterId', description='clusterId'),
  desireDedicatedNodePools?: [ string ](name='desireDedicatedNodePools', description='desireDedicatedNodePools'),
  fullNodeLabels?: [
    KubeNodeLabelDTO
  ](name='fullNodeLabels', description='fullNodeLabels'),
  nodeLabel?: KubeNodeLabelDTO(name='nodeLabel'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model UpdateOnKubeDedicatedNodesParam {
  ackInstanceId?: string(name='ackInstanceId', description='ackInstanceId'),
  clusterId?: string(name='clusterId', description='clusterId'),
  desireDedicatedNodePools?: [ string ](name='desireDedicatedNodePools', description='desireDedicatedNodePools'),
  desireDedicatedNodes?: [ string ](name='desireDedicatedNodes', description='desireDedicatedNodes'),
  fullNodeLabels?: [
    KubeNodeLabelDTO
  ](name='fullNodeLabels', description='fullNodeLabels'),
  nodeLabel?: KubeNodeLabelDTO(name='nodeLabel'),
  operateUserId?: string(name='operateUserId', description='operateUserId'),
  productRoleName?: string(name='productRoleName', description='productRoleName'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='resourceOwnerUid'),
}

model UpdateSecurityModeParam {
  clusterId?: string(name='clusterId', description='集群ID。'),
  operateUserId?: string(name='operateUserId', description='操作用户ID。'),
  resourceOwnerUid?: string(name='resourceOwnerUid', description='资源所有者ID。'),
  securityMode?: string(name='securityMode', description='安全模式。'),
}

model ViewChild {
  name?: string(name='name', description='name'),
  title?: string(name='title', description='title'),
}

model Constraint {
  max?: long(name='max', description='max'),
  min?: long(name='min', description='min'),
  type?: string(name='type', description='type'),
  values?: [ string ](name='values', description='values'),
}

model AddClusterApplicationRequest {
  addApplicationParam?: AddApplicationParam(name='addApplicationParam'),
}

model AddClusterApplicationShrinkRequest {
  addApplicationParamShrink?: string(name='addApplicationParam'),
}

model AddClusterApplicationResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function addClusterApplicationWithOptions(tmpReq: AddClusterApplicationRequest, runtime: Util.RuntimeOptions): AddClusterApplicationResponse {
  Util.validateModel(tmpReq);
  var request = new AddClusterApplicationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.addApplicationParam)) {
    request.addApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.addApplicationParam, 'addApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.addApplicationParamShrink)) {
    body['addApplicationParam'] = request.addApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'AddClusterApplication',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function addClusterApplication(request: AddClusterApplicationRequest): AddClusterApplicationResponse {
  var runtime = new Util.RuntimeOptions{};
  return addClusterApplicationWithOptions(request, runtime);
}

model AddSuspendPointOnWorkflowInstanceRequest {
  addSuspendOnWorkflowInstanceParam?: AddSuspendPointOnWorkflowInstanceParam(name='addSuspendOnWorkflowInstanceParam', description='添加暂停点参数'),
}

model AddSuspendPointOnWorkflowInstanceShrinkRequest {
  addSuspendOnWorkflowInstanceParamShrink?: string(name='addSuspendOnWorkflowInstanceParam', description='添加暂停点参数'),
}

model AddSuspendPointOnWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function addSuspendPointOnWorkflowInstanceWithOptions(tmpReq: AddSuspendPointOnWorkflowInstanceRequest, runtime: Util.RuntimeOptions): AddSuspendPointOnWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new AddSuspendPointOnWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.addSuspendOnWorkflowInstanceParam)) {
    request.addSuspendOnWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.addSuspendOnWorkflowInstanceParam, 'addSuspendOnWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.addSuspendOnWorkflowInstanceParamShrink)) {
    body['addSuspendOnWorkflowInstanceParam'] = request.addSuspendOnWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'AddSuspendPointOnWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function addSuspendPointOnWorkflowInstance(request: AddSuspendPointOnWorkflowInstanceRequest): AddSuspendPointOnWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return addSuspendPointOnWorkflowInstanceWithOptions(request, runtime);
}

model CancelClusterOrdersRequest {
  cancelClusterOrdersParam?: CancelClusterOrdersParam(name='cancelClusterOrdersParam', description='cancelClusterOrdersParam'),
}

model CancelClusterOrdersShrinkRequest {
  cancelClusterOrdersParamShrink?: string(name='cancelClusterOrdersParam', description='cancelClusterOrdersParam'),
}

model CancelClusterOrdersResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ string ](name='items'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model CancelClusterOrdersResponse = {
  headers: map[string]string(name='headers'),
  body: CancelClusterOrdersResponseBody(name='body'),
}

async function cancelClusterOrdersWithOptions(tmpReq: CancelClusterOrdersRequest, runtime: Util.RuntimeOptions): CancelClusterOrdersResponse {
  Util.validateModel(tmpReq);
  var request = new CancelClusterOrdersShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.cancelClusterOrdersParam)) {
    request.cancelClusterOrdersParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.cancelClusterOrdersParam, 'cancelClusterOrdersParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.cancelClusterOrdersParamShrink)) {
    body['cancelClusterOrdersParam'] = request.cancelClusterOrdersParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CancelClusterOrders',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function cancelClusterOrders(request: CancelClusterOrdersRequest): CancelClusterOrdersResponse {
  var runtime = new Util.RuntimeOptions{};
  return cancelClusterOrdersWithOptions(request, runtime);
}

model ComAlibabaTccResponseBody = {
  requestId?: string(name='RequestId', description='Id of the request'),
}

model ComAlibabaTccResponse = {
  headers: map[string]string(name='headers'),
  body: ComAlibabaTccResponseBody(name='body'),
}

async function comAlibabaTccWithOptions(runtime: Util.RuntimeOptions): ComAlibabaTccResponse {
  var req = new OpenApi.OpenApiRequest{};
  var params = new OpenApi.Params{
    action = 'ComAlibabaTcc',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'GET',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function comAlibabaTcc(): ComAlibabaTccResponse {
  var runtime = new Util.RuntimeOptions{};
  return comAlibabaTccWithOptions(runtime);
}

model CreateAutoScalingPolicyRequest {
  createAutoScalingPolicyParam?: CreateAutoScalingPolicyParam(name='createAutoScalingPolicyParam', description='createAutoScalingPolicyParam'),
}

model CreateAutoScalingPolicyShrinkRequest {
  createAutoScalingPolicyParamShrink?: string(name='createAutoScalingPolicyParam', description='createAutoScalingPolicyParam'),
}

model CreateAutoScalingPolicyResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function createAutoScalingPolicyWithOptions(tmpReq: CreateAutoScalingPolicyRequest, runtime: Util.RuntimeOptions): CreateAutoScalingPolicyResponse {
  Util.validateModel(tmpReq);
  var request = new CreateAutoScalingPolicyShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createAutoScalingPolicyParam)) {
    request.createAutoScalingPolicyParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createAutoScalingPolicyParam, 'createAutoScalingPolicyParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createAutoScalingPolicyParamShrink)) {
    body['createAutoScalingPolicyParam'] = request.createAutoScalingPolicyParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateAutoScalingPolicy',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createAutoScalingPolicy(request: CreateAutoScalingPolicyRequest): CreateAutoScalingPolicyResponse {
  var runtime = new Util.RuntimeOptions{};
  return createAutoScalingPolicyWithOptions(request, runtime);
}

model CreateAutoScalingRuleRequest {
  createAutoScalingRuleParam?: CreateAutoScalingRuleParam(name='createAutoScalingRuleParam', description='createAutoScalingRuleParam'),
}

model CreateAutoScalingRuleShrinkRequest {
  createAutoScalingRuleParamShrink?: string(name='createAutoScalingRuleParam', description='createAutoScalingRuleParam'),
}

model CreateAutoScalingRuleResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function createAutoScalingRuleWithOptions(tmpReq: CreateAutoScalingRuleRequest, runtime: Util.RuntimeOptions): CreateAutoScalingRuleResponse {
  Util.validateModel(tmpReq);
  var request = new CreateAutoScalingRuleShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createAutoScalingRuleParam)) {
    request.createAutoScalingRuleParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createAutoScalingRuleParam, 'createAutoScalingRuleParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createAutoScalingRuleParamShrink)) {
    body['createAutoScalingRuleParam'] = request.createAutoScalingRuleParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateAutoScalingRule',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createAutoScalingRule(request: CreateAutoScalingRuleRequest): CreateAutoScalingRuleResponse {
  var runtime = new Util.RuntimeOptions{};
  return createAutoScalingRuleWithOptions(request, runtime);
}

model CreateBindingAckClusterRequest {
  createBindingAckClusterParam?: CreateBindingAckClusterParam(name='createBindingAckClusterParam', description='createBindingAckClusterParam'),
}

model CreateBindingAckClusterShrinkRequest {
  createBindingAckClusterParamShrink?: string(name='createBindingAckClusterParam', description='createBindingAckClusterParam'),
}

model CreateBindingAckClusterResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function createBindingAckClusterWithOptions(tmpReq: CreateBindingAckClusterRequest, runtime: Util.RuntimeOptions): CreateBindingAckClusterResponse {
  Util.validateModel(tmpReq);
  var request = new CreateBindingAckClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createBindingAckClusterParam)) {
    request.createBindingAckClusterParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createBindingAckClusterParam, 'createBindingAckClusterParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createBindingAckClusterParamShrink)) {
    body['createBindingAckClusterParam'] = request.createBindingAckClusterParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateBindingAckCluster',
    version = '2021-03-31',
    protocol = 'HTTP',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createBindingAckCluster(request: CreateBindingAckClusterRequest): CreateBindingAckClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return createBindingAckClusterWithOptions(request, runtime);
}

model CreateClusterRequest {
  createClusterParam?: CreateClusterParam(name='createClusterParam'),
}

model CreateClusterShrinkRequest {
  createClusterParamShrink?: string(name='createClusterParam'),
}

model CreateClusterResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function createClusterWithOptions(tmpReq: CreateClusterRequest, runtime: Util.RuntimeOptions): CreateClusterResponse {
  Util.validateModel(tmpReq);
  var request = new CreateClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createClusterParam)) {
    request.createClusterParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createClusterParam, 'createClusterParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createClusterParamShrink)) {
    body['createClusterParam'] = request.createClusterParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateCluster',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createCluster(request: CreateClusterRequest): CreateClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return createClusterWithOptions(request, runtime);
}

model CreateClusterNodeGroupRequest {
  createClusterNodeGroupParam?: CreateClusterNodeGroupParam(name='createClusterNodeGroupParam'),
}

model CreateClusterNodeGroupResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  data?: string(name='data', description='data'),
  requestId?: string(name='requestId', description='Id of the request'),
  success?: boolean(name='success', description='success'),
}

model CreateClusterNodeGroupResponse = {
  headers: map[string]string(name='headers'),
  body: CreateClusterNodeGroupResponseBody(name='body'),
}

async function createClusterNodeGroupWithOptions(request: CreateClusterNodeGroupRequest, runtime: Util.RuntimeOptions): CreateClusterNodeGroupResponse {
  Util.validateModel(request);
  var body : map[string]any= {};
  var bodyFlat : map[string]any= {};
  if (!Util.isUnset(request.createClusterNodeGroupParam)) {
    bodyFlat['createClusterNodeGroupParam'] = request.createClusterNodeGroupParam;
  }
  body = {
    ...body,
    ...OpenApiUtil.query(bodyFlat),
  };

  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateClusterNodeGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createClusterNodeGroup(request: CreateClusterNodeGroupRequest): CreateClusterNodeGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return createClusterNodeGroupWithOptions(request, runtime);
}

model CreateClusterScriptRequest {
  createClusterScriptParam?: CreateClusterScriptParam(name='createClusterScriptParam', description='createClusterScriptParam'),
}

model CreateClusterScriptShrinkRequest {
  createClusterScriptParamShrink?: string(name='createClusterScriptParam', description='createClusterScriptParam'),
}

model CreateClusterScriptResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function createClusterScriptWithOptions(tmpReq: CreateClusterScriptRequest, runtime: Util.RuntimeOptions): CreateClusterScriptResponse {
  Util.validateModel(tmpReq);
  var request = new CreateClusterScriptShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createClusterScriptParam)) {
    request.createClusterScriptParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createClusterScriptParam, 'createClusterScriptParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createClusterScriptParamShrink)) {
    body['createClusterScriptParam'] = request.createClusterScriptParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateClusterScript',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createClusterScript(request: CreateClusterScriptRequest): CreateClusterScriptResponse {
  var runtime = new Util.RuntimeOptions{};
  return createClusterScriptWithOptions(request, runtime);
}

model CreateClusterUserRequest {
  createClusterUserParam?: CreateClusterUserParam(name='createClusterUserParam'),
}

model CreateClusterUserShrinkRequest {
  createClusterUserParamShrink?: string(name='createClusterUserParam'),
}

model CreateClusterUserResponseBody = {
  requestId?: string(name='RequestId', description='Id of the request'),
  success?: boolean(name='Success'),
}

model CreateClusterUserResponse = {
  headers: map[string]string(name='headers'),
  body: CreateClusterUserResponseBody(name='body'),
}

async function createClusterUserWithOptions(tmpReq: CreateClusterUserRequest, runtime: Util.RuntimeOptions): CreateClusterUserResponse {
  Util.validateModel(tmpReq);
  var request = new CreateClusterUserShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createClusterUserParam)) {
    request.createClusterUserParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createClusterUserParam, 'createClusterUserParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createClusterUserParamShrink)) {
    body['createClusterUserParam'] = request.createClusterUserParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateClusterUser',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createClusterUser(request: CreateClusterUserRequest): CreateClusterUserResponse {
  var runtime = new Util.RuntimeOptions{};
  return createClusterUserWithOptions(request, runtime);
}

model CreateFullClusterRequest {
  createFullClusterParam?: CreateFullClusterParam(name='createFullClusterParam'),
}

model CreateFullClusterShrinkRequest {
  createFullClusterParamShrink?: string(name='createFullClusterParam'),
}

model CreateFullClusterResponseBody = {
  code?: string(name='code'),
  data?: {
    clusterId?: string(name='clusterId'),
    operationId?: string(name='operationId'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model CreateFullClusterResponse = {
  headers: map[string]string(name='headers'),
  body: CreateFullClusterResponseBody(name='body'),
}

async function createFullClusterWithOptions(tmpReq: CreateFullClusterRequest, runtime: Util.RuntimeOptions): CreateFullClusterResponse {
  Util.validateModel(tmpReq);
  var request = new CreateFullClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createFullClusterParam)) {
    request.createFullClusterParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createFullClusterParam, 'createFullClusterParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createFullClusterParamShrink)) {
    body['createFullClusterParam'] = request.createFullClusterParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateFullCluster',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createFullCluster(request: CreateFullClusterRequest): CreateFullClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return createFullClusterWithOptions(request, runtime);
}

model CreateFullClusterByMainVersionRequest {
  createFullClusterByMainVersionParam?: CreateFullClusterByMainVersionParam(name='createFullClusterByMainVersionParam'),
}

model CreateFullClusterByMainVersionShrinkRequest {
  createFullClusterByMainVersionParamShrink?: string(name='createFullClusterByMainVersionParam'),
}

model CreateFullClusterByMainVersionResponseBody = {
  code?: string(name='code'),
  data?: {
    clusterId?: string(name='clusterId'),
    operationId?: string(name='operationId'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model CreateFullClusterByMainVersionResponse = {
  headers: map[string]string(name='headers'),
  body: CreateFullClusterByMainVersionResponseBody(name='body'),
}

async function createFullClusterByMainVersionWithOptions(tmpReq: CreateFullClusterByMainVersionRequest, runtime: Util.RuntimeOptions): CreateFullClusterByMainVersionResponse {
  Util.validateModel(tmpReq);
  var request = new CreateFullClusterByMainVersionShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createFullClusterByMainVersionParam)) {
    request.createFullClusterByMainVersionParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createFullClusterByMainVersionParam, 'createFullClusterByMainVersionParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createFullClusterByMainVersionParamShrink)) {
    body['createFullClusterByMainVersionParam'] = request.createFullClusterByMainVersionParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateFullClusterByMainVersion',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createFullClusterByMainVersion(request: CreateFullClusterByMainVersionRequest): CreateFullClusterByMainVersionResponse {
  var runtime = new Util.RuntimeOptions{};
  return createFullClusterByMainVersionWithOptions(request, runtime);
}

model CreateMainVersionRequest {
  createMainVersionParam?: CreateMainVersionParam(name='CreateMainVersionParam', description='CreateMainVersionParam'),
}

model CreateMainVersionShrinkRequest {
  createMainVersionParamShrink?: string(name='CreateMainVersionParam', description='CreateMainVersionParam'),
}

model CreateMainVersionResponseBody = {
  code?: string(name='code'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model CreateMainVersionResponse = {
  headers: map[string]string(name='headers'),
  body: CreateMainVersionResponseBody(name='body'),
}

async function createMainVersionWithOptions(tmpReq: CreateMainVersionRequest, runtime: Util.RuntimeOptions): CreateMainVersionResponse {
  Util.validateModel(tmpReq);
  var request = new CreateMainVersionShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createMainVersionParam)) {
    request.createMainVersionParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createMainVersionParam, 'CreateMainVersionParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createMainVersionParamShrink)) {
    body['CreateMainVersionParam'] = request.createMainVersionParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateMainVersion',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createMainVersion(request: CreateMainVersionRequest): CreateMainVersionResponse {
  var runtime = new Util.RuntimeOptions{};
  return createMainVersionWithOptions(request, runtime);
}

model CreateStackApplicationRequest {
  createStackApplicationParam?: CreateStackApplicationParam(name='createStackApplicationParam', description='createApplicationParam'),
}

model CreateStackApplicationShrinkRequest {
  createStackApplicationParamShrink?: string(name='createStackApplicationParam', description='createApplicationParam'),
}

model CreateStackApplicationResponseBody = {
  code?: string(name='code'),
  data?: {
    applicationSpec?: {
      iaasType?: string(name='iaasType'),
      name?: string(name='name'),
      version?: string(name='version'),
    }(name='applicationSpec'),
    createTime?: long(name='createTime'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model CreateStackApplicationResponse = {
  headers: map[string]string(name='headers'),
  body: CreateStackApplicationResponseBody(name='body'),
}

async function createStackApplicationWithOptions(tmpReq: CreateStackApplicationRequest, runtime: Util.RuntimeOptions): CreateStackApplicationResponse {
  Util.validateModel(tmpReq);
  var request = new CreateStackApplicationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.createStackApplicationParam)) {
    request.createStackApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.createStackApplicationParam, 'createStackApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.createStackApplicationParamShrink)) {
    body['createStackApplicationParam'] = request.createStackApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'CreateStackApplication',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function createStackApplication(request: CreateStackApplicationRequest): CreateStackApplicationResponse {
  var runtime = new Util.RuntimeOptions{};
  return createStackApplicationWithOptions(request, runtime);
}

model DecreaseNodeGroupRequest {
  decreaseNodeGroupParam?: DecreaseNodeGroupParam(name='DecreaseNodeGroupParam', description='DecreaseNodeGroupParam'),
}

model DecreaseNodeGroupShrinkRequest {
  decreaseNodeGroupParamShrink?: string(name='DecreaseNodeGroupParam', description='DecreaseNodeGroupParam'),
}

model DecreaseNodeGroupResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  requestId?: string(name='RequestId', description='requestId'),
  data?: {
    clusterId?: string(name='clusterId', description='clusterId'),
    operationId?: string(name='operationId', description='operationId'),
  }(name='data', description='data'),
  success?: boolean(name='success', description='success'),
}

model DecreaseNodeGroupResponse = {
  headers: map[string]string(name='headers'),
  body: DecreaseNodeGroupResponseBody(name='body'),
}

async function decreaseNodeGroupWithOptions(tmpReq: DecreaseNodeGroupRequest, runtime: Util.RuntimeOptions): DecreaseNodeGroupResponse {
  Util.validateModel(tmpReq);
  var request = new DecreaseNodeGroupShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.decreaseNodeGroupParam)) {
    request.decreaseNodeGroupParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.decreaseNodeGroupParam, 'DecreaseNodeGroupParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.decreaseNodeGroupParamShrink)) {
    body['DecreaseNodeGroupParam'] = request.decreaseNodeGroupParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DecreaseNodeGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function decreaseNodeGroup(request: DecreaseNodeGroupRequest): DecreaseNodeGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return decreaseNodeGroupWithOptions(request, runtime);
}

model DeleteAutoScalingPolicyRequest {
  deleteAutoScalingPolicyParam?: DeleteAutoScalingPolicyParam(name='deleteAutoScalingPolicyParam', description='deleteAutoScalingPolicyParam'),
}

model DeleteAutoScalingPolicyShrinkRequest {
  deleteAutoScalingPolicyParamShrink?: string(name='deleteAutoScalingPolicyParam', description='deleteAutoScalingPolicyParam'),
}

model DeleteAutoScalingPolicyResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function deleteAutoScalingPolicyWithOptions(tmpReq: DeleteAutoScalingPolicyRequest, runtime: Util.RuntimeOptions): DeleteAutoScalingPolicyResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteAutoScalingPolicyShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteAutoScalingPolicyParam)) {
    request.deleteAutoScalingPolicyParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteAutoScalingPolicyParam, 'deleteAutoScalingPolicyParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteAutoScalingPolicyParamShrink)) {
    body['deleteAutoScalingPolicyParam'] = request.deleteAutoScalingPolicyParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteAutoScalingPolicy',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteAutoScalingPolicy(request: DeleteAutoScalingPolicyRequest): DeleteAutoScalingPolicyResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteAutoScalingPolicyWithOptions(request, runtime);
}

model DeleteAutoScalingRuleRequest {
  deleteAutoScalingRuleParam?: DeleteAutoScalingRuleParam(name='deleteAutoScalingRuleParam', description='deleteAutoScalingRuleParam'),
}

model DeleteAutoScalingRuleShrinkRequest {
  deleteAutoScalingRuleParamShrink?: string(name='deleteAutoScalingRuleParam', description='deleteAutoScalingRuleParam'),
}

model DeleteAutoScalingRuleResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function deleteAutoScalingRuleWithOptions(tmpReq: DeleteAutoScalingRuleRequest, runtime: Util.RuntimeOptions): DeleteAutoScalingRuleResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteAutoScalingRuleShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteAutoScalingRuleParam)) {
    request.deleteAutoScalingRuleParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteAutoScalingRuleParam, 'deleteAutoScalingRuleParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteAutoScalingRuleParamShrink)) {
    body['deleteAutoScalingRuleParam'] = request.deleteAutoScalingRuleParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteAutoScalingRule',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteAutoScalingRule(request: DeleteAutoScalingRuleRequest): DeleteAutoScalingRuleResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteAutoScalingRuleWithOptions(request, runtime);
}

model DeleteClusterNodeGroupRequest {
  deleteNodeGroupParam?: DeleteNodeGroupParam(name='deleteNodeGroupParam', description='deleteClusterNodeGroupParam'),
}

model DeleteClusterNodeGroupShrinkRequest {
  deleteNodeGroupParamShrink?: string(name='deleteNodeGroupParam', description='deleteClusterNodeGroupParam'),
}

model DeleteClusterNodeGroupResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  requestId?: string(name='RequestId', description='Id of the request'),
  data?: string(name='data', description='data'),
  success?: boolean(name='success', description='success'),
}

model DeleteClusterNodeGroupResponse = {
  headers: map[string]string(name='headers'),
  body: DeleteClusterNodeGroupResponseBody(name='body'),
}

async function deleteClusterNodeGroupWithOptions(tmpReq: DeleteClusterNodeGroupRequest, runtime: Util.RuntimeOptions): DeleteClusterNodeGroupResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteClusterNodeGroupShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteNodeGroupParam)) {
    request.deleteNodeGroupParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteNodeGroupParam, 'deleteNodeGroupParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteNodeGroupParamShrink)) {
    body['deleteNodeGroupParam'] = request.deleteNodeGroupParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteClusterNodeGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteClusterNodeGroup(request: DeleteClusterNodeGroupRequest): DeleteClusterNodeGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteClusterNodeGroupWithOptions(request, runtime);
}

model DeleteClusterScriptRequest {
  deleteClusterScriptParam?: DeleteClusterScriptParam(name='deleteClusterScriptParam', description='deleteClusterScriptParam'),
}

model DeleteClusterScriptShrinkRequest {
  deleteClusterScriptParamShrink?: string(name='deleteClusterScriptParam', description='deleteClusterScriptParam'),
}

model DeleteClusterScriptResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function deleteClusterScriptWithOptions(tmpReq: DeleteClusterScriptRequest, runtime: Util.RuntimeOptions): DeleteClusterScriptResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteClusterScriptShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteClusterScriptParam)) {
    request.deleteClusterScriptParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteClusterScriptParam, 'deleteClusterScriptParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteClusterScriptParamShrink)) {
    body['deleteClusterScriptParam'] = request.deleteClusterScriptParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteClusterScript',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteClusterScript(request: DeleteClusterScriptRequest): DeleteClusterScriptResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteClusterScriptWithOptions(request, runtime);
}

model DeleteClusterUserRequest {
  deleteClusterUserParam?: DeleteClusterUserParam(name='deleteClusterUserParam'),
}

model DeleteClusterUserShrinkRequest {
  deleteClusterUserParamShrink?: string(name='deleteClusterUserParam'),
}

model DeleteClusterUserResponseBody = {
  requestId?: string(name='RequestId', description='Id of the request'),
  success?: boolean(name='Success'),
}

model DeleteClusterUserResponse = {
  headers: map[string]string(name='headers'),
  body: DeleteClusterUserResponseBody(name='body'),
}

async function deleteClusterUserWithOptions(tmpReq: DeleteClusterUserRequest, runtime: Util.RuntimeOptions): DeleteClusterUserResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteClusterUserShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteClusterUserParam)) {
    request.deleteClusterUserParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteClusterUserParam, 'deleteClusterUserParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteClusterUserParamShrink)) {
    body['deleteClusterUserParam'] = request.deleteClusterUserParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteClusterUser',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteClusterUser(request: DeleteClusterUserRequest): DeleteClusterUserResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteClusterUserWithOptions(request, runtime);
}

model DeleteKubeCustomerResourceRequest {
  deleteKubeCustomerResourcesParam?: DeleteKubeCustomerResourcesParam(name='deleteKubeCustomerResourcesParam', description='deleteKubeCustomerResourcesParam'),
}

model DeleteKubeCustomerResourceShrinkRequest {
  deleteKubeCustomerResourcesParamShrink?: string(name='deleteKubeCustomerResourcesParam', description='deleteKubeCustomerResourcesParam'),
}

model DeleteKubeCustomerResourceResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function deleteKubeCustomerResourceWithOptions(tmpReq: DeleteKubeCustomerResourceRequest, runtime: Util.RuntimeOptions): DeleteKubeCustomerResourceResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteKubeCustomerResourceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteKubeCustomerResourcesParam)) {
    request.deleteKubeCustomerResourcesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteKubeCustomerResourcesParam, 'deleteKubeCustomerResourcesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteKubeCustomerResourcesParamShrink)) {
    body['deleteKubeCustomerResourcesParam'] = request.deleteKubeCustomerResourcesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteKubeCustomerResource',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteKubeCustomerResource(request: DeleteKubeCustomerResourceRequest): DeleteKubeCustomerResourceResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteKubeCustomerResourceWithOptions(request, runtime);
}

model DeleteKubeNativeResourcesRequest {
  deleteKubeNativeResourcesParam?: DeleteKubeNativeResourcesParam(name='deleteKubeNativeResourcesParam', description='deleteKubeNativeResourcesParam'),
}

model DeleteKubeNativeResourcesShrinkRequest {
  deleteKubeNativeResourcesParamShrink?: string(name='deleteKubeNativeResourcesParam', description='deleteKubeNativeResourcesParam'),
}

model DeleteKubeNativeResourcesResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function deleteKubeNativeResourcesWithOptions(tmpReq: DeleteKubeNativeResourcesRequest, runtime: Util.RuntimeOptions): DeleteKubeNativeResourcesResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteKubeNativeResourcesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteKubeNativeResourcesParam)) {
    request.deleteKubeNativeResourcesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteKubeNativeResourcesParam, 'deleteKubeNativeResourcesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteKubeNativeResourcesParamShrink)) {
    body['deleteKubeNativeResourcesParam'] = request.deleteKubeNativeResourcesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteKubeNativeResources',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteKubeNativeResources(request: DeleteKubeNativeResourcesRequest): DeleteKubeNativeResourcesResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteKubeNativeResourcesWithOptions(request, runtime);
}

model DeleteStackApplicationRequest {
  deleteStackApplicationParam?: DeleteStackApplicationParam(name='deleteStackApplicationParam'),
}

model DeleteStackApplicationShrinkRequest {
  deleteStackApplicationParamShrink?: string(name='deleteStackApplicationParam'),
}

model DeleteStackApplicationResponseBody = {
  code?: string(name='code'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model DeleteStackApplicationResponse = {
  headers: map[string]string(name='headers'),
  body: DeleteStackApplicationResponseBody(name='body'),
}

async function deleteStackApplicationWithOptions(tmpReq: DeleteStackApplicationRequest, runtime: Util.RuntimeOptions): DeleteStackApplicationResponse {
  Util.validateModel(tmpReq);
  var request = new DeleteStackApplicationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deleteStackApplicationParam)) {
    request.deleteStackApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deleteStackApplicationParam, 'deleteStackApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deleteStackApplicationParamShrink)) {
    body['deleteStackApplicationParam'] = request.deleteStackApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeleteStackApplication',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deleteStackApplication(request: DeleteStackApplicationRequest): DeleteStackApplicationResponse {
  var runtime = new Util.RuntimeOptions{};
  return deleteStackApplicationWithOptions(request, runtime);
}

model DeployApplicationsRequest {
  deployApplicationParam?: DeployApplicationParam(name='deployApplicationParam', description='deployApplicationParam'),
}

model DeployApplicationsShrinkRequest {
  deployApplicationParamShrink?: string(name='deployApplicationParam', description='deployApplicationParam'),
}

model DeployApplicationsResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function deployApplicationsWithOptions(tmpReq: DeployApplicationsRequest, runtime: Util.RuntimeOptions): DeployApplicationsResponse {
  Util.validateModel(tmpReq);
  var request = new DeployApplicationsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.deployApplicationParam)) {
    request.deployApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.deployApplicationParam, 'deployApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.deployApplicationParamShrink)) {
    body['deployApplicationParam'] = request.deployApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DeployApplications',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function deployApplications(request: DeployApplicationsRequest): DeployApplicationsResponse {
  var runtime = new Util.RuntimeOptions{};
  return deployApplicationsWithOptions(request, runtime);
}

model DisableAutoScalingPolicyRequest {
  disableAutoScalingPolicyParam?: DisableAutoScalingPolicyParam(name='disableAutoScalingPolicyParam', description='disableAutoScalingPolicyParam'),
}

model DisableAutoScalingPolicyShrinkRequest {
  disableAutoScalingPolicyParamShrink?: string(name='disableAutoScalingPolicyParam', description='disableAutoScalingPolicyParam'),
}

model DisableAutoScalingPolicyResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function disableAutoScalingPolicyWithOptions(tmpReq: DisableAutoScalingPolicyRequest, runtime: Util.RuntimeOptions): DisableAutoScalingPolicyResponse {
  Util.validateModel(tmpReq);
  var request = new DisableAutoScalingPolicyShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.disableAutoScalingPolicyParam)) {
    request.disableAutoScalingPolicyParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.disableAutoScalingPolicyParam, 'disableAutoScalingPolicyParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.disableAutoScalingPolicyParamShrink)) {
    body['disableAutoScalingPolicyParam'] = request.disableAutoScalingPolicyParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'DisableAutoScalingPolicy',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function disableAutoScalingPolicy(request: DisableAutoScalingPolicyRequest): DisableAutoScalingPolicyResponse {
  var runtime = new Util.RuntimeOptions{};
  return disableAutoScalingPolicyWithOptions(request, runtime);
}

model EnableAutoScalingPolicyRequest {
  enableAutoScalingPolicyParam?: EnableAutoScalingPolicyParam(name='enableAutoScalingPolicyParam', description='enableAutoScalingPolicyParam'),
}

model EnableAutoScalingPolicyShrinkRequest {
  enableAutoScalingPolicyParamShrink?: string(name='enableAutoScalingPolicyParam', description='enableAutoScalingPolicyParam'),
}

model EnableAutoScalingPolicyResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function enableAutoScalingPolicyWithOptions(tmpReq: EnableAutoScalingPolicyRequest, runtime: Util.RuntimeOptions): EnableAutoScalingPolicyResponse {
  Util.validateModel(tmpReq);
  var request = new EnableAutoScalingPolicyShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.enableAutoScalingPolicyParam)) {
    request.enableAutoScalingPolicyParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.enableAutoScalingPolicyParam, 'enableAutoScalingPolicyParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.enableAutoScalingPolicyParamShrink)) {
    body['enableAutoScalingPolicyParam'] = request.enableAutoScalingPolicyParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'EnableAutoScalingPolicy',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function enableAutoScalingPolicy(request: EnableAutoScalingPolicyRequest): EnableAutoScalingPolicyResponse {
  var runtime = new Util.RuntimeOptions{};
  return enableAutoScalingPolicyWithOptions(request, runtime);
}

model ExecuteClusterScriptRequest {
  executeClusterScriptParam?: ExecuteClusterScriptParam(name='executeClusterScriptParam', description='executeClusterScriptParam'),
}

model ExecuteClusterScriptShrinkRequest {
  executeClusterScriptParamShrink?: string(name='executeClusterScriptParam', description='executeClusterScriptParam'),
}

model ExecuteClusterScriptResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function executeClusterScriptWithOptions(tmpReq: ExecuteClusterScriptRequest, runtime: Util.RuntimeOptions): ExecuteClusterScriptResponse {
  Util.validateModel(tmpReq);
  var request = new ExecuteClusterScriptShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.executeClusterScriptParam)) {
    request.executeClusterScriptParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.executeClusterScriptParam, 'executeClusterScriptParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.executeClusterScriptParamShrink)) {
    body['executeClusterScriptParam'] = request.executeClusterScriptParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ExecuteClusterScript',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function executeClusterScript(request: ExecuteClusterScriptRequest): ExecuteClusterScriptResponse {
  var runtime = new Util.RuntimeOptions{};
  return executeClusterScriptWithOptions(request, runtime);
}

model GetApplicationActionsRequest {
  getApplicationActionsParam?: GetApplicationActionsParam(name='getApplicationActionsParam', description='getApplicationActionsParam'),
}

model GetApplicationActionsShrinkRequest {
  getApplicationActionsParamShrink?: string(name='getApplicationActionsParam', description='getApplicationActionsParam'),
}

model GetApplicationActionsResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      actionConfigs?: [ 
        {
          description?: string(name='description'),
          key?: string(name='key'),
          value?: string(name='value'),
          valueAttribute?: string(name='valueAttribute'),
          valueType?: string(name='valueType'),
        }
      ](name='actionConfigs'),
      actionName?: string(name='actionName'),
      componentName?: string(name='componentName'),
      description?: string(name='description'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetApplicationActionsResponse = {
  headers: map[string]string(name='headers'),
  body: GetApplicationActionsResponseBody(name='body'),
}

async function getApplicationActionsWithOptions(tmpReq: GetApplicationActionsRequest, runtime: Util.RuntimeOptions): GetApplicationActionsResponse {
  Util.validateModel(tmpReq);
  var request = new GetApplicationActionsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getApplicationActionsParam)) {
    request.getApplicationActionsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getApplicationActionsParam, 'getApplicationActionsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getApplicationActionsParamShrink)) {
    body['getApplicationActionsParam'] = request.getApplicationActionsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetApplicationActions',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getApplicationActions(request: GetApplicationActionsRequest): GetApplicationActionsResponse {
  var runtime = new Util.RuntimeOptions{};
  return getApplicationActionsWithOptions(request, runtime);
}

model GetAutoScalingActivityRequest {
  getAutoScalingActivityParam?: GetAutoScalingActivityParam(name='getAutoScalingActivityParam'),
}

model GetAutoScalingActivityShrinkRequest {
  getAutoScalingActivityParamShrink?: string(name='getAutoScalingActivityParam'),
}

model GetAutoScalingActivityResponseBody = {
  code?: string(name='code'),
  data?: {
    clusterId?: string(name='clusterId', description='集群Id'),
    description?: string(name='description', description='本次伸缩活动描述 如果状态为 FAILED 则为失败原因'),
    endTime?: long(name='endTime', description='伸缩结束时间'),
    expectNum?: int32(name='expectNum'),
    nodeGroupId?: string(name='nodeGroupId', description='节点组Id'),
    nodeGroupName?: string(name='nodeGroupName', description='节点组Id'),
    operationId?: string(name='operationId', description='异步操作时的操作Id'),
    scalingActivityId?: string(name='scalingActivityId', description='伸缩活动id'),
    scalingActivityResults?: [ 
      {
        instanceId?: string(name='instanceId'),
      }
    ](name='scalingActivityResults'),
    scalingActivityState?: string(name='scalingActivityState', description='InProgress/Failed/Rejected/Successful/'),
    scalingActivityType?: string(name='scalingActivityType', description='伸缩活动类型'),
    scalingPolicyId?: string(name='scalingPolicyId', description='伸缩策略Id'),
    scalingRuleDetail?: ScalingRule(name='scalingRuleDetail'),
    scalingRuleName?: string(name='scalingRuleName', description='伸缩规则id'),
    startTime?: long(name='startTime', description='伸缩启动时间'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetAutoScalingActivityResponse = {
  headers: map[string]string(name='headers'),
  body: GetAutoScalingActivityResponseBody(name='body'),
}

async function getAutoScalingActivityWithOptions(tmpReq: GetAutoScalingActivityRequest, runtime: Util.RuntimeOptions): GetAutoScalingActivityResponse {
  Util.validateModel(tmpReq);
  var request = new GetAutoScalingActivityShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getAutoScalingActivityParam)) {
    request.getAutoScalingActivityParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getAutoScalingActivityParam, 'getAutoScalingActivityParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getAutoScalingActivityParamShrink)) {
    body['getAutoScalingActivityParam'] = request.getAutoScalingActivityParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetAutoScalingActivity',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getAutoScalingActivity(request: GetAutoScalingActivityRequest): GetAutoScalingActivityResponse {
  var runtime = new Util.RuntimeOptions{};
  return getAutoScalingActivityWithOptions(request, runtime);
}

model GetAutoScalingPolicyRequest {
  getAutoScalingPolicyParam?: GetAutoScalingPolicyParam(name='getAutoScalingPolicyParam'),
}

model GetAutoScalingPolicyShrinkRequest {
  getAutoScalingPolicyParamShrink?: string(name='getAutoScalingPolicyParam'),
}

model GetAutoScalingPolicyResponseBody = {
  code?: string(name='code'),
  data?: {
    clusterId?: string(name='clusterId'),
    nodeGroupId?: string(name='nodeGroupId', description='clusterScriptId'),
    scalingPolicyId?: string(name='scalingPolicyId', description='clusterScriptId'),
    scalingRules?: [
      ScalingRule
    ](name='scalingRules'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetAutoScalingPolicyResponse = {
  headers: map[string]string(name='headers'),
  body: GetAutoScalingPolicyResponseBody(name='body'),
}

async function getAutoScalingPolicyWithOptions(tmpReq: GetAutoScalingPolicyRequest, runtime: Util.RuntimeOptions): GetAutoScalingPolicyResponse {
  Util.validateModel(tmpReq);
  var request = new GetAutoScalingPolicyShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getAutoScalingPolicyParam)) {
    request.getAutoScalingPolicyParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getAutoScalingPolicyParam, 'getAutoScalingPolicyParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getAutoScalingPolicyParamShrink)) {
    body['getAutoScalingPolicyParam'] = request.getAutoScalingPolicyParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetAutoScalingPolicy',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getAutoScalingPolicy(request: GetAutoScalingPolicyRequest): GetAutoScalingPolicyResponse {
  var runtime = new Util.RuntimeOptions{};
  return getAutoScalingPolicyWithOptions(request, runtime);
}

model GetClusterRequest {
  clusterBaseParam?: ClusterBaseParam(name='clusterBaseParam'),
}

model GetClusterShrinkRequest {
  clusterBaseParamShrink?: string(name='clusterBaseParam'),
}

model GetClusterResponseBody = {
  code?: string(name='code'),
  data?: ClusterDTO(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetClusterResponse = {
  headers: map[string]string(name='headers'),
  body: GetClusterResponseBody(name='body'),
}

async function getClusterWithOptions(tmpReq: GetClusterRequest, runtime: Util.RuntimeOptions): GetClusterResponse {
  Util.validateModel(tmpReq);
  var request = new GetClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.clusterBaseParam)) {
    request.clusterBaseParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.clusterBaseParam, 'clusterBaseParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.clusterBaseParamShrink)) {
    body['clusterBaseParam'] = request.clusterBaseParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetCluster',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getCluster(request: GetClusterRequest): GetClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return getClusterWithOptions(request, runtime);
}

model GetClusterOperationRequest {
  getClusterOperationParam?: GetClusterOperationParam(name='getClusterOperationParam', description='getClusterOperationParam'),
}

model GetClusterOperationShrinkRequest {
  getClusterOperationParamShrink?: string(name='getClusterOperationParam', description='getClusterOperationParam'),
}

model GetClusterOperationResponseBody = {
  code?: string(name='code'),
  data?: {
    clusterId?: string(name='clusterId', description='clusterId'),
    creator?: string(name='creator'),
    endTime?: long(name='endTime', description='endTime'),
    failReason?: {
      errorCode?: string(name='errorCode'),
      errorMessage?: string(name='errorMessage'),
    }(name='failReason'),
    gmtCreate?: long(name='gmtCreate', description='gmtCreate'),
    gmtModified?: long(name='gmtModified', description='gmtModified'),
    modifier?: string(name='modifier', description='modifier'),
    operationId?: string(name='operationId', description='operationId'),
    operationType?: string(name='operationType', description='operationType'),
    resourceIds?: string(name='resourceIds', description='resourceIds'),
    resourceType?: string(name='resourceType', description='resourceType'),
    startTime?: long(name='startTime', description='startTime'),
    status?: string(name='status', description='status'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetClusterOperationResponse = {
  headers: map[string]string(name='headers'),
  body: GetClusterOperationResponseBody(name='body'),
}

async function getClusterOperationWithOptions(tmpReq: GetClusterOperationRequest, runtime: Util.RuntimeOptions): GetClusterOperationResponse {
  Util.validateModel(tmpReq);
  var request = new GetClusterOperationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getClusterOperationParam)) {
    request.getClusterOperationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getClusterOperationParam, 'getClusterOperationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getClusterOperationParamShrink)) {
    body['getClusterOperationParam'] = request.getClusterOperationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetClusterOperation',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getClusterOperation(request: GetClusterOperationRequest): GetClusterOperationResponse {
  var runtime = new Util.RuntimeOptions{};
  return getClusterOperationWithOptions(request, runtime);
}

model GetClusterOperationNodeRequest {
  getClusterOperationNodeParam?: GetClusterOperationNodeParam(name='getClusterOperationNodeParam', description='getClusterOperationNodeParam'),
}

model GetClusterOperationNodeShrinkRequest {
  getClusterOperationNodeParamShrink?: string(name='getClusterOperationNodeParam', description='getClusterOperationNodeParam'),
}

model GetClusterOperationNodeResponseBody = {
  code?: string(name='code'),
  data?: {
    endTime?: long(name='endTime', description='endTime'),
    hasChildOperationNodes?: boolean(name='hasChildOperationNodes', description='hasChildOperationNodes'),
    hasOperationTask?: boolean(name='hasOperationTask', description='hasOperationTask'),
    operationId?: string(name='operationId', description='operationId'),
    operationNodeId?: string(name='operationNodeId', description='operationNodeId'),
    operationNodeName?: string(name='operationNodeName', description='operationNodeName'),
    startTime?: long(name='startTime', description='startTime'),
    status?: string(name='status', description='status'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetClusterOperationNodeResponse = {
  headers: map[string]string(name='headers'),
  body: GetClusterOperationNodeResponseBody(name='body'),
}

async function getClusterOperationNodeWithOptions(tmpReq: GetClusterOperationNodeRequest, runtime: Util.RuntimeOptions): GetClusterOperationNodeResponse {
  Util.validateModel(tmpReq);
  var request = new GetClusterOperationNodeShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getClusterOperationNodeParam)) {
    request.getClusterOperationNodeParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getClusterOperationNodeParam, 'getClusterOperationNodeParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getClusterOperationNodeParamShrink)) {
    body['getClusterOperationNodeParam'] = request.getClusterOperationNodeParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetClusterOperationNode',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getClusterOperationNode(request: GetClusterOperationNodeRequest): GetClusterOperationNodeResponse {
  var runtime = new Util.RuntimeOptions{};
  return getClusterOperationNodeWithOptions(request, runtime);
}

model GetClusterOperationTaskLogRequest {
  getClusterOperationTaskLogParam?: GetClusterOperationTaskLogParam(name='getClusterOperationTaskLogParam', description='getClusterOperationTaskLogParam'),
}

model GetClusterOperationTaskLogShrinkRequest {
  getClusterOperationTaskLogParamShrink?: string(name='getClusterOperationTaskLogParam', description='getClusterOperationTaskLogParam'),
}

model GetClusterOperationTaskLogResponseBody = {
  code?: string(name='code'),
  data?: {
    result?: string(name='result', description='result'),
    stderr?: string(name='stderr', description='stderr'),
    stdout?: string(name='stdout', description='stdout'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetClusterOperationTaskLogResponse = {
  headers: map[string]string(name='headers'),
  body: GetClusterOperationTaskLogResponseBody(name='body'),
}

async function getClusterOperationTaskLogWithOptions(tmpReq: GetClusterOperationTaskLogRequest, runtime: Util.RuntimeOptions): GetClusterOperationTaskLogResponse {
  Util.validateModel(tmpReq);
  var request = new GetClusterOperationTaskLogShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getClusterOperationTaskLogParam)) {
    request.getClusterOperationTaskLogParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getClusterOperationTaskLogParam, 'getClusterOperationTaskLogParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getClusterOperationTaskLogParamShrink)) {
    body['getClusterOperationTaskLogParam'] = request.getClusterOperationTaskLogParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetClusterOperationTaskLog',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getClusterOperationTaskLog(request: GetClusterOperationTaskLogRequest): GetClusterOperationTaskLogResponse {
  var runtime = new Util.RuntimeOptions{};
  return getClusterOperationTaskLogWithOptions(request, runtime);
}

model GetClusterScriptDetailRequest {
  getClusterScriptDetailParam?: GetClusterScriptDetailParam(name='getClusterScriptDetailParam', description='getClusterScriptDetailParam'),
}

model GetClusterScriptDetailShrinkRequest {
  getClusterScriptDetailParamShrink?: string(name='getClusterScriptDetailParam', description='getClusterScriptDetailParam'),
}

model GetClusterScriptDetailResponseBody = {
  code?: string(name='code'),
  data?: {
    clusterId?: string(name='clusterId', description='clusterId'),
    clusterScriptArgs?: string(name='clusterScriptArgs', description='clusterScriptArgs'),
    clusterScriptContent?: string(name='clusterScriptContent', description='clusterScriptContent'),
    clusterScriptContentSpec?: string(name='clusterScriptContentSpec', description='clusterScriptContentSpec'),
    clusterScriptId?: string(name='clusterScriptId', description='clusterScriptId'),
    clusterScriptName?: string(name='clusterScriptName', description='clusterScriptName'),
    clusterScriptPath?: string(name='clusterScriptPath', description='clusterScriptPath'),
    clusterScriptType?: string(name='clusterScriptType', description='clusterScriptType'),
    executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
    executeMoment?: string(name='executeMoment', description='executeMoment'),
    executeScope?: string(name='executeScope', description='executeScope'),
    executeScopeParams?: string(name='executeScopeParams', description='executeScopeParams'),
    lastEditTime?: long(name='lastEditTime', description='lastEditTime'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetClusterScriptDetailResponse = {
  headers: map[string]string(name='headers'),
  body: GetClusterScriptDetailResponseBody(name='body'),
}

async function getClusterScriptDetailWithOptions(tmpReq: GetClusterScriptDetailRequest, runtime: Util.RuntimeOptions): GetClusterScriptDetailResponse {
  Util.validateModel(tmpReq);
  var request = new GetClusterScriptDetailShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getClusterScriptDetailParam)) {
    request.getClusterScriptDetailParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getClusterScriptDetailParam, 'getClusterScriptDetailParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getClusterScriptDetailParamShrink)) {
    body['getClusterScriptDetailParam'] = request.getClusterScriptDetailParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetClusterScriptDetail',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getClusterScriptDetail(request: GetClusterScriptDetailRequest): GetClusterScriptDetailResponse {
  var runtime = new Util.RuntimeOptions{};
  return getClusterScriptDetailWithOptions(request, runtime);
}

model GetConfigTagsRequest {
  getConfigTagsParam?: GetConfigTagsParam(name='getConfigTagsParam', description='getConfigTagsParam'),
}

model GetConfigTagsShrinkRequest {
  getConfigTagsParamShrink?: string(name='getConfigTagsParam', description='getConfigTagsParam'),
}

model GetConfigTagsResponseBody = {
  code?: string(name='code'),
  data?: [ string ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetConfigTagsResponse = {
  headers: map[string]string(name='headers'),
  body: GetConfigTagsResponseBody(name='body'),
}

async function getConfigTagsWithOptions(tmpReq: GetConfigTagsRequest, runtime: Util.RuntimeOptions): GetConfigTagsResponse {
  Util.validateModel(tmpReq);
  var request = new GetConfigTagsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getConfigTagsParam)) {
    request.getConfigTagsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getConfigTagsParam, 'getConfigTagsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getConfigTagsParamShrink)) {
    body['getConfigTagsParam'] = request.getConfigTagsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetConfigTags',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getConfigTags(request: GetConfigTagsRequest): GetConfigTagsResponse {
  var runtime = new Util.RuntimeOptions{};
  return getConfigTagsWithOptions(request, runtime);
}

model GetDependApplicationsRequest {
  getDependApplicationsParam?: GetDependApplicationsParam(name='getDependApplicationsParam', description='listApplicationsParam'),
}

model GetDependApplicationsShrinkRequest {
  getDependApplicationsParamShrink?: string(name='getDependApplicationsParam', description='listApplicationsParam'),
}

model GetDependApplicationsResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      applicationName?: string(name='applicationName'),
      applicationVersion?: string(name='applicationVersion'),
      description?: string(name='description'),
      gmtCreate?: long(name='gmtCreate'),
      gmtModified?: long(name='gmtModified'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetDependApplicationsResponse = {
  headers: map[string]string(name='headers'),
  body: GetDependApplicationsResponseBody(name='body'),
}

async function getDependApplicationsWithOptions(tmpReq: GetDependApplicationsRequest, runtime: Util.RuntimeOptions): GetDependApplicationsResponse {
  Util.validateModel(tmpReq);
  var request = new GetDependApplicationsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getDependApplicationsParam)) {
    request.getDependApplicationsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getDependApplicationsParam, 'getDependApplicationsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getDependApplicationsParamShrink)) {
    body['getDependApplicationsParam'] = request.getDependApplicationsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetDependApplications',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getDependApplications(request: GetDependApplicationsRequest): GetDependApplicationsResponse {
  var runtime = new Util.RuntimeOptions{};
  return getDependApplicationsWithOptions(request, runtime);
}

model GetMainVersionDetailRequest {
  getMainVersionDetailParam?: GetMainVersionDetailParam(name='getMainVersionDetailParam'),
}

model GetMainVersionDetailShrinkRequest {
  getMainVersionDetailParamShrink?: string(name='getMainVersionDetailParam'),
}

model GetMainVersionDetailResponseBody = {
  code?: string(name='code'),
  data?: MainVersionMeta(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetMainVersionDetailResponse = {
  headers: map[string]string(name='headers'),
  body: GetMainVersionDetailResponseBody(name='body'),
}

async function getMainVersionDetailWithOptions(tmpReq: GetMainVersionDetailRequest, runtime: Util.RuntimeOptions): GetMainVersionDetailResponse {
  Util.validateModel(tmpReq);
  var request = new GetMainVersionDetailShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getMainVersionDetailParam)) {
    request.getMainVersionDetailParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getMainVersionDetailParam, 'getMainVersionDetailParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getMainVersionDetailParamShrink)) {
    body['getMainVersionDetailParam'] = request.getMainVersionDetailParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetMainVersionDetail',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getMainVersionDetail(request: GetMainVersionDetailRequest): GetMainVersionDetailResponse {
  var runtime = new Util.RuntimeOptions{};
  return getMainVersionDetailWithOptions(request, runtime);
}

model GetReportRequest {
  getReportParam?: GetReportParam(name='getReportParam'),
}

model GetReportShrinkRequest {
  getReportParamShrink?: string(name='getReportParam'),
}

model GetReportResponseBody = {
  code?: string(name='code'),
  data?: GetReportResult(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetReportResponse = {
  headers: map[string]string(name='headers'),
  body: GetReportResponseBody(name='body'),
}

async function getReportWithOptions(tmpReq: GetReportRequest, runtime: Util.RuntimeOptions): GetReportResponse {
  Util.validateModel(tmpReq);
  var request = new GetReportShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getReportParam)) {
    request.getReportParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getReportParam, 'getReportParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getReportParamShrink)) {
    body['getReportParam'] = request.getReportParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetReport',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getReport(request: GetReportRequest): GetReportResponse {
  var runtime = new Util.RuntimeOptions{};
  return getReportWithOptions(request, runtime);
}

model GetReportDataRequest {
  getReportDataParam?: GetReportDataParam(name='getReportDataParam'),
}

model GetReportDataShrinkRequest {
  getReportDataParamShrink?: string(name='getReportDataParam'),
}

model GetReportDataResponseBody = {
  code?: string(name='code'),
  data?: GetReportDataResult(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetReportDataResponse = {
  headers: map[string]string(name='headers'),
  body: GetReportDataResponseBody(name='body'),
}

async function getReportDataWithOptions(tmpReq: GetReportDataRequest, runtime: Util.RuntimeOptions): GetReportDataResponse {
  Util.validateModel(tmpReq);
  var request = new GetReportDataShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getReportDataParam)) {
    request.getReportDataParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getReportDataParam, 'getReportDataParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getReportDataParamShrink)) {
    body['getReportDataParam'] = request.getReportDataParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetReportData',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getReportData(request: GetReportDataRequest): GetReportDataResponse {
  var runtime = new Util.RuntimeOptions{};
  return getReportDataWithOptions(request, runtime);
}

model GetStackApplicationRequest {
  getStackApplicationParam?: GetStackApplicationParam(name='getStackApplicationParam'),
}

model GetStackApplicationShrinkRequest {
  getStackApplicationParamShrink?: string(name='getStackApplicationParam'),
}

model GetStackApplicationResponseBody = {
  code?: string(name='code'),
  data?: {
    createTime?: long(name='createTime'),
    iaasType?: string(name='iaasType'),
    name?: string(name='name'),
    version?: string(name='version'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetStackApplicationResponse = {
  headers: map[string]string(name='headers'),
  body: GetStackApplicationResponseBody(name='body'),
}

async function getStackApplicationWithOptions(tmpReq: GetStackApplicationRequest, runtime: Util.RuntimeOptions): GetStackApplicationResponse {
  Util.validateModel(tmpReq);
  var request = new GetStackApplicationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getStackApplicationParam)) {
    request.getStackApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getStackApplicationParam, 'getStackApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getStackApplicationParamShrink)) {
    body['getStackApplicationParam'] = request.getStackApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetStackApplication',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getStackApplication(request: GetStackApplicationRequest): GetStackApplicationResponse {
  var runtime = new Util.RuntimeOptions{};
  return getStackApplicationWithOptions(request, runtime);
}

model GetWorkflowDefinitionRequest {
  getWorkflowDefinitionParam?: GetWorkflowDefinitionParam(name='getWorkflowDefinitionParam', description='获取工作流定义对象'),
}

model GetWorkflowDefinitionShrinkRequest {
  getWorkflowDefinitionParamShrink?: string(name='getWorkflowDefinitionParam', description='获取工作流定义对象'),
}

model GetWorkflowDefinitionResponseBody = {
  code?: string(name='code'),
  data?: {
    definitionVariables?: string(name='definitionVariables'),
    description?: string(name='description'),
    namespace?: string(name='namespace'),
    workflowDAG?: string(name='workflowDAG'),
    workflowDefinitionDisplayName?: string(name='workflowDefinitionDisplayName'),
    workflowDefinitionId?: long(name='workflowDefinitionId'),
    workflowDefinitionLabel?: string(name='workflowDefinitionLabel'),
    workflowDefinitionName?: string(name='workflowDefinitionName'),
    workflowDefinitionVersion?: string(name='workflowDefinitionVersion'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetWorkflowDefinitionResponse = {
  headers: map[string]string(name='headers'),
  body: GetWorkflowDefinitionResponseBody(name='body'),
}

async function getWorkflowDefinitionWithOptions(tmpReq: GetWorkflowDefinitionRequest, runtime: Util.RuntimeOptions): GetWorkflowDefinitionResponse {
  Util.validateModel(tmpReq);
  var request = new GetWorkflowDefinitionShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getWorkflowDefinitionParam)) {
    request.getWorkflowDefinitionParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getWorkflowDefinitionParam, 'getWorkflowDefinitionParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getWorkflowDefinitionParamShrink)) {
    body['getWorkflowDefinitionParam'] = request.getWorkflowDefinitionParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetWorkflowDefinition',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getWorkflowDefinition(request: GetWorkflowDefinitionRequest): GetWorkflowDefinitionResponse {
  var runtime = new Util.RuntimeOptions{};
  return getWorkflowDefinitionWithOptions(request, runtime);
}

model GetWorkflowInstanceRequest {
  getWorkflowInstanceParam?: GetWorkflowInstanceParam(name='getWorkflowInstanceParam'),
}

model GetWorkflowInstanceShrinkRequest {
  getWorkflowInstanceParamShrink?: string(name='getWorkflowInstanceParam'),
}

model GetWorkflowInstanceResponseBody = {
  code?: string(name='code'),
  data?: {
    namespace?: string(name='namespace'),
    parentActivityId?: long(name='parentActivityId'),
    parentWorkflowInstanceId?: long(name='parentWorkflowInstanceId'),
    token?: string(name='token'),
    workflowDefinitionId?: long(name='workflowDefinitionId'),
    workflowInstanceDisplayName?: string(name='workflowInstanceDisplayName'),
    workflowInstanceId?: long(name='workflowInstanceId'),
    workflowInstanceName?: string(name='workflowInstanceName'),
    workflowInstanceStatus?: string(name='workflowInstanceStatus'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model GetWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: GetWorkflowInstanceResponseBody(name='body'),
}

async function getWorkflowInstanceWithOptions(tmpReq: GetWorkflowInstanceRequest, runtime: Util.RuntimeOptions): GetWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new GetWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getWorkflowInstanceParam)) {
    request.getWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getWorkflowInstanceParam, 'getWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getWorkflowInstanceParamShrink)) {
    body['getWorkflowInstanceParam'] = request.getWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'GetWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function getWorkflowInstance(request: GetWorkflowInstanceRequest): GetWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return getWorkflowInstanceWithOptions(request, runtime);
}

model IncreaseNodeGroupRequest {
  increaseNodeGroupParam?: IncreaseNodeGroupParam(name='increaseNodeGroupParam', description='increaseNodeGroupParam'),
}

model IncreaseNodeGroupShrinkRequest {
  increaseNodeGroupParamShrink?: string(name='increaseNodeGroupParam', description='increaseNodeGroupParam'),
}

model IncreaseNodeGroupResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  requestId?: string(name='RequestId', description='requestId'),
  data?: {
    clusterId?: string(name='clusterId', description='clusterId'),
    operationId?: string(name='operationId', description='operationId'),
  }(name='data', description='data'),
  success?: boolean(name='success', description='success'),
}

model IncreaseNodeGroupResponse = {
  headers: map[string]string(name='headers'),
  body: IncreaseNodeGroupResponseBody(name='body'),
}

async function increaseNodeGroupWithOptions(tmpReq: IncreaseNodeGroupRequest, runtime: Util.RuntimeOptions): IncreaseNodeGroupResponse {
  Util.validateModel(tmpReq);
  var request = new IncreaseNodeGroupShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.increaseNodeGroupParam)) {
    request.increaseNodeGroupParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.increaseNodeGroupParam, 'increaseNodeGroupParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.increaseNodeGroupParamShrink)) {
    body['increaseNodeGroupParam'] = request.increaseNodeGroupParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'IncreaseNodeGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function increaseNodeGroup(request: IncreaseNodeGroupRequest): IncreaseNodeGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return increaseNodeGroupWithOptions(request, runtime);
}

model IncreaseNodeGroupDiskRequest {
  increaseDiskParam?: IncreaseDiskParam(name='increaseDiskParam', description='IncreaseDiskParam'),
}

model IncreaseNodeGroupDiskShrinkRequest {
  increaseDiskParamShrink?: string(name='increaseDiskParam', description='IncreaseDiskParam'),
}

model IncreaseNodeGroupDiskResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  data?: string(name='data', description='data'),
  requestId?: string(name='requestId', description='requestId'),
  success?: boolean(name='success', description='success'),
}

model IncreaseNodeGroupDiskResponse = {
  headers: map[string]string(name='headers'),
  body: IncreaseNodeGroupDiskResponseBody(name='body'),
}

async function increaseNodeGroupDiskWithOptions(tmpReq: IncreaseNodeGroupDiskRequest, runtime: Util.RuntimeOptions): IncreaseNodeGroupDiskResponse {
  Util.validateModel(tmpReq);
  var request = new IncreaseNodeGroupDiskShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.increaseDiskParam)) {
    request.increaseDiskParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.increaseDiskParam, 'increaseDiskParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.increaseDiskParamShrink)) {
    body['increaseDiskParam'] = request.increaseDiskParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'IncreaseNodeGroupDisk',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function increaseNodeGroupDisk(request: IncreaseNodeGroupDiskRequest): IncreaseNodeGroupDiskResponse {
  var runtime = new Util.RuntimeOptions{};
  return increaseNodeGroupDiskWithOptions(request, runtime);
}

model JoinResourceGroupRequest {
  joinResourceGroupParam?: JoinResourceGroupParam(name='joinResourceGroupParam'),
}

model JoinResourceGroupShrinkRequest {
  joinResourceGroupParamShrink?: string(name='joinResourceGroupParam'),
}

model JoinResourceGroupResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function joinResourceGroupWithOptions(tmpReq: JoinResourceGroupRequest, runtime: Util.RuntimeOptions): JoinResourceGroupResponse {
  Util.validateModel(tmpReq);
  var request = new JoinResourceGroupShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.joinResourceGroupParam)) {
    request.joinResourceGroupParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.joinResourceGroupParam, 'joinResourceGroupParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.joinResourceGroupParamShrink)) {
    body['joinResourceGroupParam'] = request.joinResourceGroupParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'JoinResourceGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function joinResourceGroup(request: JoinResourceGroupRequest): JoinResourceGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return joinResourceGroupWithOptions(request, runtime);
}

model ListAckClusterNodePoolsRequest {
  listAckClusterNodePoolsParam?: ListAckClusterNodePoolsParam(name='listAckClusterNodePoolsParam', description='listAckClusterNodePoolsParam'),
}

model ListAckClusterNodePoolsShrinkRequest {
  listAckClusterNodePoolsParamShrink?: string(name='listAckClusterNodePoolsParam', description='listAckClusterNodePoolsParam'),
}

model ListAckClusterNodePoolsResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      nodePoolId?: string(name='nodePoolId'),
      nodeSelector?: NodeSelector(name='nodeSelector'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListAckClusterNodePoolsResponse = {
  headers: map[string]string(name='headers'),
  body: ListAckClusterNodePoolsResponseBody(name='body'),
}

async function listAckClusterNodePoolsWithOptions(tmpReq: ListAckClusterNodePoolsRequest, runtime: Util.RuntimeOptions): ListAckClusterNodePoolsResponse {
  Util.validateModel(tmpReq);
  var request = new ListAckClusterNodePoolsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listAckClusterNodePoolsParam)) {
    request.listAckClusterNodePoolsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listAckClusterNodePoolsParam, 'listAckClusterNodePoolsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listAckClusterNodePoolsParamShrink)) {
    body['listAckClusterNodePoolsParam'] = request.listAckClusterNodePoolsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListAckClusterNodePools',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listAckClusterNodePools(request: ListAckClusterNodePoolsRequest): ListAckClusterNodePoolsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listAckClusterNodePoolsWithOptions(request, runtime);
}

model ListAckClusterNodesRequest {
  listAckClusterNodesParam?: ListAckClusterNodesParam(name='listAckClusterNodesParam', description='listAckClusterNodesParam'),
}

model ListAckClusterNodesShrinkRequest {
  listAckClusterNodesParamShrink?: string(name='listAckClusterNodesParam', description='listAckClusterNodesParam'),
}

model ListAckClusterNodesResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      nodeId?: string(name='nodeId'),
      nodeSelector?: NodeSelector(name='nodeSelector'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListAckClusterNodesResponse = {
  headers: map[string]string(name='headers'),
  body: ListAckClusterNodesResponseBody(name='body'),
}

async function listAckClusterNodesWithOptions(tmpReq: ListAckClusterNodesRequest, runtime: Util.RuntimeOptions): ListAckClusterNodesResponse {
  Util.validateModel(tmpReq);
  var request = new ListAckClusterNodesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listAckClusterNodesParam)) {
    request.listAckClusterNodesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listAckClusterNodesParam, 'listAckClusterNodesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listAckClusterNodesParamShrink)) {
    body['listAckClusterNodesParam'] = request.listAckClusterNodesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListAckClusterNodes',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listAckClusterNodes(request: ListAckClusterNodesRequest): ListAckClusterNodesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listAckClusterNodesWithOptions(request, runtime);
}

model ListApplicationMetaRequest {
  listApplicationMetaParam?: ListApplicationMetaParam(name='listApplicationMetaParam', description='listApplicationMetaParam'),
}

model ListApplicationMetaShrinkRequest {
  listApplicationMetaParamShrink?: string(name='listApplicationMetaParam', description='listApplicationMetaParam'),
}

model ListApplicationMetaResponseBody = {
  code?: string(name='code'),
  data?: [
    ApplicationMetaDTO
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListApplicationMetaResponse = {
  headers: map[string]string(name='headers'),
  body: ListApplicationMetaResponseBody(name='body'),
}

async function listApplicationMetaWithOptions(tmpReq: ListApplicationMetaRequest, runtime: Util.RuntimeOptions): ListApplicationMetaResponse {
  Util.validateModel(tmpReq);
  var request = new ListApplicationMetaShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listApplicationMetaParam)) {
    request.listApplicationMetaParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listApplicationMetaParam, 'listApplicationMetaParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listApplicationMetaParamShrink)) {
    body['listApplicationMetaParam'] = request.listApplicationMetaParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListApplicationMeta',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listApplicationMeta(request: ListApplicationMetaRequest): ListApplicationMetaResponse {
  var runtime = new Util.RuntimeOptions{};
  return listApplicationMetaWithOptions(request, runtime);
}

model ListApplicationsRequest {
  listApplicationsParam?: ListApplicationsParam(name='listApplicationsParam', description='listApplicationsParam'),
}

model ListApplicationsShrinkRequest {
  listApplicationsParamShrink?: string(name='listApplicationsParam', description='listApplicationsParam'),
}

model ListApplicationsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName'),
        applicationVersion?: string(name='applicationVersion'),
        description?: string(name='description'),
        gmtCreate?: long(name='gmtCreate'),
        gmtModified?: long(name='gmtModified'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListApplicationsResponse = {
  headers: map[string]string(name='headers'),
  body: ListApplicationsResponseBody(name='body'),
}

async function listApplicationsWithOptions(tmpReq: ListApplicationsRequest, runtime: Util.RuntimeOptions): ListApplicationsResponse {
  Util.validateModel(tmpReq);
  var request = new ListApplicationsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listApplicationsParam)) {
    request.listApplicationsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listApplicationsParam, 'listApplicationsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listApplicationsParamShrink)) {
    body['listApplicationsParam'] = request.listApplicationsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListApplications',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listApplications(request: ListApplicationsRequest): ListApplicationsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listApplicationsWithOptions(request, runtime);
}

model ListAutoScalingActivitiesRequest {
  listAutoScalingActivitiesParam?: ListAutoScalingActivitiesParam(name='listAutoScalingActivitiesParam', description='listAutoScalingActivitiesParam'),
}

model ListAutoScalingActivitiesShrinkRequest {
  listAutoScalingActivitiesParamShrink?: string(name='listAutoScalingActivitiesParam', description='listAutoScalingActivitiesParam'),
}

model ListAutoScalingActivitiesResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        clusterId?: string(name='clusterId', description='集群Id'),
        description?: string(name='description', description='本次伸缩活动描述 如果状态为 FAILED 则为失败原因'),
        endTime?: long(name='endTime', description='伸缩结束时间'),
        expectNum?: int32(name='expectNum'),
        nodeGroupId?: string(name='nodeGroupId', description='节点组Id'),
        nodeGroupName?: string(name='nodeGroupName', description='节点组Id'),
        operationId?: string(name='operationId', description='异步操作时的操作Id'),
        scalingActivityId?: string(name='scalingActivityId', description='伸缩活动id'),
        scalingActivityState?: string(name='scalingActivityState', description='InProgress/Failed/Rejected/Successful/'),
        scalingActivityType?: string(name='scalingActivityType', description='伸缩活动类型'),
        scalingPolicyId?: string(name='scalingPolicyId', description='伸缩策略Id'),
        scalingRuleName?: string(name='scalingRuleName', description='伸缩规则id'),
        startTime?: long(name='startTime', description='伸缩启动时间'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListAutoScalingActivitiesResponse = {
  headers: map[string]string(name='headers'),
  body: ListAutoScalingActivitiesResponseBody(name='body'),
}

async function listAutoScalingActivitiesWithOptions(tmpReq: ListAutoScalingActivitiesRequest, runtime: Util.RuntimeOptions): ListAutoScalingActivitiesResponse {
  Util.validateModel(tmpReq);
  var request = new ListAutoScalingActivitiesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listAutoScalingActivitiesParam)) {
    request.listAutoScalingActivitiesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listAutoScalingActivitiesParam, 'listAutoScalingActivitiesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listAutoScalingActivitiesParamShrink)) {
    body['listAutoScalingActivitiesParam'] = request.listAutoScalingActivitiesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListAutoScalingActivities',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listAutoScalingActivities(request: ListAutoScalingActivitiesRequest): ListAutoScalingActivitiesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listAutoScalingActivitiesWithOptions(request, runtime);
}

model ListAutoScalingMetricsRequest {
  listAutoScalingMetricsParam?: ListAutoScalingMetricsParam(name='listAutoScalingMetricsParam', description='listAutoScalingMetricsParam'),
}

model ListAutoScalingMetricsShrinkRequest {
  listAutoScalingMetricsParamShrink?: string(name='listAutoScalingMetricsParam', description='listAutoScalingMetricsParam'),
}

model ListAutoScalingMetricsResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      metricName?: string(name='metricName', description='指标名称'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListAutoScalingMetricsResponse = {
  headers: map[string]string(name='headers'),
  body: ListAutoScalingMetricsResponseBody(name='body'),
}

async function listAutoScalingMetricsWithOptions(tmpReq: ListAutoScalingMetricsRequest, runtime: Util.RuntimeOptions): ListAutoScalingMetricsResponse {
  Util.validateModel(tmpReq);
  var request = new ListAutoScalingMetricsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listAutoScalingMetricsParam)) {
    request.listAutoScalingMetricsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listAutoScalingMetricsParam, 'listAutoScalingMetricsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listAutoScalingMetricsParamShrink)) {
    body['listAutoScalingMetricsParam'] = request.listAutoScalingMetricsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListAutoScalingMetrics',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listAutoScalingMetrics(request: ListAutoScalingMetricsRequest): ListAutoScalingMetricsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listAutoScalingMetricsWithOptions(request, runtime);
}

model ListAutoScalingPoliciesRequest {
  listAutoScalingPoliciesParam?: ListAutoScalingPoliciesParam(name='listAutoScalingPoliciesParam', description='listAutoScalingPoliciesParam'),
}

model ListAutoScalingPoliciesShrinkRequest {
  listAutoScalingPoliciesParamShrink?: string(name='listAutoScalingPoliciesParam', description='listAutoScalingPoliciesParam'),
}

model ListAutoScalingPoliciesResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        clusterId?: string(name='clusterId', description='集群Id'),
        defrostTime?: long(name='defrostTime', description='解冻时间'),
        frostReason?: string(name='frostReason', description='拒绝原因'),
        nodeGroupId?: string(name='nodeGroupId', description='节点组Id'),
        scalingPolicyId?: string(name='scalingPolicyId', description='伸缩策略Id'),
        scalingPolicyStatus?: string(name='scalingPolicyStatus', description='INACTIVE/ACTIVE'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListAutoScalingPoliciesResponse = {
  headers: map[string]string(name='headers'),
  body: ListAutoScalingPoliciesResponseBody(name='body'),
}

async function listAutoScalingPoliciesWithOptions(tmpReq: ListAutoScalingPoliciesRequest, runtime: Util.RuntimeOptions): ListAutoScalingPoliciesResponse {
  Util.validateModel(tmpReq);
  var request = new ListAutoScalingPoliciesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listAutoScalingPoliciesParam)) {
    request.listAutoScalingPoliciesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listAutoScalingPoliciesParam, 'listAutoScalingPoliciesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listAutoScalingPoliciesParamShrink)) {
    body['listAutoScalingPoliciesParam'] = request.listAutoScalingPoliciesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListAutoScalingPolicies',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listAutoScalingPolicies(request: ListAutoScalingPoliciesRequest): ListAutoScalingPoliciesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listAutoScalingPoliciesWithOptions(request, runtime);
}

model ListAutoScalingRulesRequest {
  listAutoScalingRulesParam?: ListAutoScalingRulesParam(name='listAutoScalingRulesParam', description='listAutoScalingRulesParam'),
}

model ListAutoScalingRulesShrinkRequest {
  listAutoScalingRulesParamShrink?: string(name='listAutoScalingRulesParam', description='listAutoScalingRulesParam'),
}

model ListAutoScalingRulesResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      adjustmentValue?: int32(name='adjustmentValue', description='调整数量'),
      byLoadScalingRuleSpec?: ByLoadScalingRuleSpec(name='byLoadScalingRuleSpec'),
      byTimeScalingRuleSpec?: ByTimeScalingRuleSpec(name='byTimeScalingRuleSpec'),
      clusterId?: string(name='clusterId', description='集群Id'),
      coolDownInterval?: int32(name='coolDownInterval', description='冷却时间 单位为妙'),
      nodeGroupId?: string(name='nodeGroupId', description='节点组Id'),
      scalingActivityType?: string(name='scalingActivityType', description='伸缩活动类型'),
      scalingPolicyId?: string(name='scalingPolicyId', description='所属弹性伸缩策略 Id'),
      scalingRuleId?: string(name='scalingRuleId', description='伸缩规则Id'),
      scalingRuleName?: string(name='scalingRuleName', description='伸缩规则名称'),
      scalingRuleStatus?: string(name='scalingRuleStatus', description='INACTIVE/ACTIVE'),
      scalingRuleType?: string(name='scalingRuleType', description='伸缩规则类型'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListAutoScalingRulesResponse = {
  headers: map[string]string(name='headers'),
  body: ListAutoScalingRulesResponseBody(name='body'),
}

async function listAutoScalingRulesWithOptions(tmpReq: ListAutoScalingRulesRequest, runtime: Util.RuntimeOptions): ListAutoScalingRulesResponse {
  Util.validateModel(tmpReq);
  var request = new ListAutoScalingRulesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listAutoScalingRulesParam)) {
    request.listAutoScalingRulesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listAutoScalingRulesParam, 'listAutoScalingRulesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listAutoScalingRulesParamShrink)) {
    body['listAutoScalingRulesParam'] = request.listAutoScalingRulesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListAutoScalingRules',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listAutoScalingRules(request: ListAutoScalingRulesRequest): ListAutoScalingRulesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listAutoScalingRulesWithOptions(request, runtime);
}

model ListClusterAckByAckInstanceIdsRequest {
  listClusterAckByInstanceIdsParam?: ListClusterAckByInstanceIdsParam(name='listClusterAckByInstanceIdsParam', description='listClusterAckByInstanceIdsParam'),
}

model ListClusterAckByAckInstanceIdsShrinkRequest {
  listClusterAckByInstanceIdsParamShrink?: string(name='listClusterAckByInstanceIdsParam', description='listClusterAckByInstanceIdsParam'),
}

model ListClusterAckByAckInstanceIdsResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      ackClusterType?: string(name='ackClusterType'),
      ackId?: string(name='ackId'),
      ackInstanceId?: string(name='ackInstanceId'),
      clusterId?: string(name='clusterId'),
      namespace?: string(name='namespace'),
      nodeLabel?: string(name='nodeLabel'),
      ossPath?: string(name='ossPath'),
      product?: string(name='product'),
      status?: string(name='status'),
      vpcId?: string(name='vpcId'),
      vswitchId?: string(name='vswitchId'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterAckByAckInstanceIdsResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterAckByAckInstanceIdsResponseBody(name='body'),
}

async function listClusterAckByAckInstanceIdsWithOptions(tmpReq: ListClusterAckByAckInstanceIdsRequest, runtime: Util.RuntimeOptions): ListClusterAckByAckInstanceIdsResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterAckByAckInstanceIdsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterAckByInstanceIdsParam)) {
    request.listClusterAckByInstanceIdsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterAckByInstanceIdsParam, 'listClusterAckByInstanceIdsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterAckByInstanceIdsParamShrink)) {
    body['listClusterAckByInstanceIdsParam'] = request.listClusterAckByInstanceIdsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterAckByAckInstanceIds',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterAckByAckInstanceIds(request: ListClusterAckByAckInstanceIdsRequest): ListClusterAckByAckInstanceIdsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterAckByAckInstanceIdsWithOptions(request, runtime);
}

model ListClusterAckByClusterIdsRequest {
  listClusterAckClusterByClusterIdsParam?: ListClusterAckClusterByClusterIdsParam(name='listClusterAckClusterByClusterIdsParam', description='listClusterAckClusterByClusterIdsParam'),
}

model ListClusterAckByClusterIdsShrinkRequest {
  listClusterAckClusterByClusterIdsParamShrink?: string(name='listClusterAckClusterByClusterIdsParam', description='listClusterAckClusterByClusterIdsParam'),
}

model ListClusterAckByClusterIdsResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      ackClusterType?: string(name='ackClusterType'),
      ackId?: string(name='ackId'),
      ackInstanceId?: string(name='ackInstanceId'),
      clusterId?: string(name='clusterId'),
      namespace?: string(name='namespace'),
      nodeLabel?: string(name='nodeLabel'),
      ossPath?: string(name='ossPath'),
      product?: string(name='product'),
      status?: string(name='status'),
      vpcId?: string(name='vpcId'),
      vswitchId?: string(name='vswitchId'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterAckByClusterIdsResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterAckByClusterIdsResponseBody(name='body'),
}

async function listClusterAckByClusterIdsWithOptions(tmpReq: ListClusterAckByClusterIdsRequest, runtime: Util.RuntimeOptions): ListClusterAckByClusterIdsResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterAckByClusterIdsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterAckClusterByClusterIdsParam)) {
    request.listClusterAckClusterByClusterIdsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterAckClusterByClusterIdsParam, 'listClusterAckClusterByClusterIdsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterAckClusterByClusterIdsParamShrink)) {
    body['listClusterAckClusterByClusterIdsParam'] = request.listClusterAckClusterByClusterIdsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterAckByClusterIds',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterAckByClusterIds(request: ListClusterAckByClusterIdsRequest): ListClusterAckByClusterIdsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterAckByClusterIdsWithOptions(request, runtime);
}

model ListClusterNodeGroupRequest {
  listClusterNodeGroupsParam?: ListClusterNodeGroupsParam(name='listClusterNodeGroupsParam', description='listClusterNodeGroupsParam'),
}

model ListClusterNodeGroupShrinkRequest {
  listClusterNodeGroupsParamShrink?: string(name='listClusterNodeGroupsParam', description='listClusterNodeGroupsParam'),
}

model ListClusterNodeGroupResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        additionalSecurityGroupIds?: [ string ](name='additionalSecurityGroupIds'),
        costOptimizedConfig?: {
          onDemandBaseCapacity?: int32(name='onDemandBaseCapacity'),
          onDemandPercentageAboveBaseCapacity?: int32(name='onDemandPercentageAboveBaseCapacity'),
          spotInstancePools?: int32(name='spotInstancePools'),
        }(name='costOptimizedConfig'),
        dataDiskCount?: int32(name='dataDiskCount'),
        dataDiskSize?: int32(name='dataDiskSize'),
        description?: string(name='description'),
        enableDecommissionGracefully?: boolean(name='enableDecommissionGracefully'),
        fleetId?: string(name='fleetId'),
        imageId?: string(name='imageId'),
        instanceTypeList?: [ string ](name='instanceTypeList'),
        keypairName?: string(name='keypairName'),
        maxSize?: int32(name='maxSize'),
        minSize?: int32(name='minSize'),
        nodeGroupId?: string(name='nodeGroupId'),
        nodeGroupName?: string(name='nodeGroupName'),
        nodeGroupType?: string(name='nodeGroupType'),
        nodeRamRole?: string(name='nodeRamRole'),
        nodeResizeStrategy?: string(name='nodeResizeStrategy'),
        paymentType?: string(name='paymentType'),
        sataDiskCategory?: string(name='sataDiskCategory'),
        scalingPolicyId?: string(name='scalingPolicyId'),
        securityGroupId?: string(name='securityGroupId'),
        spotInstanceRemedy?: boolean(name='spotInstanceRemedy'),
        spotPriceLimits?: [ double ](name='spotPriceLimits'),
        spotStrategy?: string(name='spotStrategy'),
        systemDiskCategory?: string(name='systemDiskCategory'),
        systemDiskSize?: int32(name='systemDiskSize'),
        vswitchId?: string(name='vswitchId'),
        withPublicIp?: boolean(name='withPublicIp'),
        zoneId?: string(name='zoneId'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterNodeGroupResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterNodeGroupResponseBody(name='body'),
}

async function listClusterNodeGroupWithOptions(tmpReq: ListClusterNodeGroupRequest, runtime: Util.RuntimeOptions): ListClusterNodeGroupResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterNodeGroupShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterNodeGroupsParam)) {
    request.listClusterNodeGroupsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterNodeGroupsParam, 'listClusterNodeGroupsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterNodeGroupsParamShrink)) {
    body['listClusterNodeGroupsParam'] = request.listClusterNodeGroupsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterNodeGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterNodeGroup(request: ListClusterNodeGroupRequest): ListClusterNodeGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterNodeGroupWithOptions(request, runtime);
}

model ListClusterOperationNodesRequest {
  listClusterOperationNodesParam?: ListClusterOperationNodesParam(name='listClusterOperationNodesParam', description='listClusterOperationNodesParam'),
}

model ListClusterOperationNodesShrinkRequest {
  listClusterOperationNodesParamShrink?: string(name='listClusterOperationNodesParam', description='listClusterOperationNodesParam'),
}

model ListClusterOperationNodesResponseBody = {
  code?: string(name='code'),
  data?: [ 
    {
      endTime?: long(name='endTime', description='endTime'),
      hasChildOperationNodes?: boolean(name='hasChildOperationNodes', description='hasChildOperationNodes'),
      hasOperationTask?: boolean(name='hasOperationTask', description='hasOperationTask'),
      operationId?: string(name='operationId', description='operationId'),
      operationNodeId?: string(name='operationNodeId', description='operationNodeId'),
      operationNodeName?: string(name='operationNodeName', description='operationNodeName'),
      startTime?: long(name='startTime', description='startTime'),
      status?: string(name='status', description='status'),
    }
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterOperationNodesResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterOperationNodesResponseBody(name='body'),
}

async function listClusterOperationNodesWithOptions(tmpReq: ListClusterOperationNodesRequest, runtime: Util.RuntimeOptions): ListClusterOperationNodesResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterOperationNodesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterOperationNodesParam)) {
    request.listClusterOperationNodesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterOperationNodesParam, 'listClusterOperationNodesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterOperationNodesParamShrink)) {
    body['listClusterOperationNodesParam'] = request.listClusterOperationNodesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterOperationNodes',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterOperationNodes(request: ListClusterOperationNodesRequest): ListClusterOperationNodesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterOperationNodesWithOptions(request, runtime);
}

model ListClusterOperationTasksRequest {
  listClusterOperationTasksParam?: ListClusterOperationTasksParam(name='listClusterOperationTasksParam', description='listClusterOperationTasksParam'),
}

model ListClusterOperationTasksShrinkRequest {
  listClusterOperationTasksParamShrink?: string(name='listClusterOperationTasksParam', description='listClusterOperationTasksParam'),
}

model ListClusterOperationTasksResponseBody = {
  maxResults?: int32(name='MaxResults', description='一次获取的最大记录数。 一次获取的最大记录数。 ```20```'),
  nextToken?: string(name='NextToken', description='下一页TOKEN。 下一页TOKEN。 ```DD6B1B2A-5837-5237-ABE4-FF0C89568980```'),
  operationTasks?: [ 
    {
      endTime?: long(name='EndTime', description='结束时间。 结束时间。 ```1592837465784```'),
      gmtCreate?: long(name='GmtCreate', description='创建时间。 创建时间。 ```1592837465784```'),
      gmtModified?: long(name='GmtModified', description='修改时间。 修改时间。 ```1592837465784```'),
      nodeId?: string(name='NodeId', description='执行节点ID。 执行节点ID。 ```i-xxx```'),
      operationTaskId?: long(name='OperationTaskId', description='任务ID。 任务ID。 ```1592837465784```'),
      operationTaskName?: string(name='OperationTaskName', description='任务名称。 任务名称。 ``` Install@Flink@FlinkRunime```'),
      startTime?: long(name='StartTime', description='开始时间。 开始时间。 ```1592837465784```'),
      status?: string(name='Status', description='状态。 状态。 ```RUNNING```'),
    }
  ](name='OperationTasks'),
  requestId?: string(name='RequestId', description='请求ID。 请求ID。 ```DD6B1B2A-5837-5237-ABE4-FF0C8944****```'),
  totalCount?: int32(name='TotalCount', description='记录总数。 记录总数。 ```200```'),
}

model ListClusterOperationTasksResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterOperationTasksResponseBody(name='body'),
}

async function listClusterOperationTasksWithOptions(tmpReq: ListClusterOperationTasksRequest, runtime: Util.RuntimeOptions): ListClusterOperationTasksResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterOperationTasksShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterOperationTasksParam)) {
    request.listClusterOperationTasksParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterOperationTasksParam, 'listClusterOperationTasksParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterOperationTasksParamShrink)) {
    body['listClusterOperationTasksParam'] = request.listClusterOperationTasksParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterOperationTasks',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterOperationTasks(request: ListClusterOperationTasksRequest): ListClusterOperationTasksResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterOperationTasksWithOptions(request, runtime);
}

model ListClusterOperationsRequest {
  listClusterOperationsParam?: ListClusterOperationsParam(name='listClusterOperationsParam', description='listClusterOperationsParam'),
}

model ListClusterOperationsShrinkRequest {
  listClusterOperationsParamShrink?: string(name='listClusterOperationsParam', description='listClusterOperationsParam'),
}

model ListClusterOperationsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        clusterId?: string(name='clusterId', description='clusterId'),
        creator?: string(name='creator'),
        endTime?: long(name='endTime', description='endTime'),
        failReason?: {
          errorCode?: string(name='errorCode', description='errorCode'),
          errorMessage?: string(name='errorMessage', description='errorMessage'),
        }(name='failReason'),
        gmtCreate?: long(name='gmtCreate', description='gmtCreate'),
        gmtModified?: long(name='gmtModified', description='gmtModified'),
        modifier?: string(name='modifier', description='modifier'),
        operationId?: string(name='operationId', description='operationId'),
        operationType?: string(name='operationType', description='operationType'),
        resourceIds?: string(name='resourceIds', description='resourceIds'),
        resourceType?: string(name='resourceType', description='resourceType'),
        startTime?: long(name='startTime', description='startTime'),
        status?: string(name='status', description='status'),
        token?: string(name='token', description='token'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterOperationsResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterOperationsResponseBody(name='body'),
}

async function listClusterOperationsWithOptions(tmpReq: ListClusterOperationsRequest, runtime: Util.RuntimeOptions): ListClusterOperationsResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterOperationsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterOperationsParam)) {
    request.listClusterOperationsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterOperationsParam, 'listClusterOperationsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterOperationsParamShrink)) {
    body['listClusterOperationsParam'] = request.listClusterOperationsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterOperations',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterOperations(request: ListClusterOperationsRequest): ListClusterOperationsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterOperationsWithOptions(request, runtime);
}

model ListClusterOrdersRequest {
  listClusterOrdersParam?: ListClusterOrdersParam(name='listClusterOrdersParam', description='listClusterOrdersParam'),
}

model ListClusterOrdersShrinkRequest {
  listClusterOrdersParamShrink?: string(name='listClusterOrdersParam', description='listClusterOrdersParam'),
}

model ListClusterOrdersResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        instanceIds?: [ string ](name='instanceIds', description='instanceIds'),
        orderId?: string(name='orderId', description='orderId'),
        orderStatus?: string(name='orderStatus', description='orderStatus'),
        orderType?: string(name='orderType', description='orderType'),
      }
    ](name='items'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterOrdersResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterOrdersResponseBody(name='body'),
}

async function listClusterOrdersWithOptions(tmpReq: ListClusterOrdersRequest, runtime: Util.RuntimeOptions): ListClusterOrdersResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterOrdersShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterOrdersParam)) {
    request.listClusterOrdersParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterOrdersParam, 'listClusterOrdersParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterOrdersParamShrink)) {
    body['listClusterOrdersParam'] = request.listClusterOrdersParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterOrders',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterOrders(request: ListClusterOrdersRequest): ListClusterOrdersResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterOrdersWithOptions(request, runtime);
}

model ListClusterScriptsRequest {
  listClusterScriptsParam?: ListClusterScriptsParam(name='listClusterScriptsParam', description='listClusterScriptsParam'),
}

model ListClusterScriptsShrinkRequest {
  listClusterScriptsParamShrink?: string(name='listClusterScriptsParam', description='listClusterScriptsParam'),
}

model ListClusterScriptsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        clusterId?: string(name='clusterId', description='clusterId'),
        executeFailStrategy?: string(name='executeFailStrategy', description='executeFailStrategy'),
        executeMoment?: string(name='executeMoment', description='executeMoment'),
        executeScope?: string(name='executeScope', description='executeScope'),
        executeScopeParams?: string(name='executeScopeParams', description='executeScopeParams'),
        lastEditTime?: long(name='lastEditTime', description='lastEditTime'),
        scriptArgs?: string(name='scriptArgs', description='clusterScriptArgs'),
        scriptContent?: string(name='scriptContent', description='clusterScriptContent'),
        scriptContentSpec?: string(name='scriptContentSpec', description='clusterScriptContentSpec'),
        scriptId?: string(name='scriptId', description='clusterScriptId'),
        scriptName?: string(name='scriptName', description='clusterScriptName'),
        scriptPath?: string(name='scriptPath', description='clusterScriptPath'),
        scriptType?: string(name='scriptType', description='clusterScriptType'),
      }
    ](name='items'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClusterScriptsResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterScriptsResponseBody(name='body'),
}

async function listClusterScriptsWithOptions(tmpReq: ListClusterScriptsRequest, runtime: Util.RuntimeOptions): ListClusterScriptsResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterScriptsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterScriptsParam)) {
    request.listClusterScriptsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterScriptsParam, 'listClusterScriptsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterScriptsParamShrink)) {
    body['listClusterScriptsParam'] = request.listClusterScriptsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterScripts',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterScripts(request: ListClusterScriptsRequest): ListClusterScriptsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterScriptsWithOptions(request, runtime);
}

model ListClusterUsersRequest {
  listClusterUsersParam?: ListClusterUserParam(name='listClusterUsersParam'),
}

model ListClusterUsersShrinkRequest {
  listClusterUsersParamShrink?: string(name='listClusterUsersParam'),
}

model ListClusterUsersResponseBody = {
  data?: {
    items?: [ 
      {
        createTime?: string(name='createTime'),
        description?: string(name='description'),
        ldapUrl?: string(name='ldapUrl'),
        status?: string(name='status'),
        userGroup?: string(name='userGroup'),
        userId?: string(name='userId'),
        userName?: string(name='userName'),
        userType?: string(name='userType'),
      }
    ](name='items'),
    maxResults?: int32(name='maxResults'),
    nextToken?: string(name='nextToken'),
    pageNumber?: long(name='pageNumber'),
    pageSize?: long(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  requestId?: string(name='requestId', description='Id of the request'),
  success?: boolean(name='success'),
}

model ListClusterUsersResponse = {
  headers: map[string]string(name='headers'),
  body: ListClusterUsersResponseBody(name='body'),
}

async function listClusterUsersWithOptions(tmpReq: ListClusterUsersRequest, runtime: Util.RuntimeOptions): ListClusterUsersResponse {
  Util.validateModel(tmpReq);
  var request = new ListClusterUsersShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClusterUsersParam)) {
    request.listClusterUsersParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClusterUsersParam, 'listClusterUsersParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClusterUsersParamShrink)) {
    body['listClusterUsersParam'] = request.listClusterUsersParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusterUsers',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusterUsers(request: ListClusterUsersRequest): ListClusterUsersResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClusterUsersWithOptions(request, runtime);
}

model ListClustersRequest {
  listClustersParam?: ListClustersParam(name='listClustersParam', description='listClustersParam'),
}

model ListClustersShrinkRequest {
  listClustersParamShrink?: string(name='listClustersParam', description='listClustersParam'),
}

model ListClustersResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        clusterId?: string(name='clusterId'),
        clusterName?: string(name='clusterName'),
        clusterStatus?: string(name='clusterStatus'),
        clusterType?: string(name='clusterType'),
        creator?: string(name='creator'),
        deployMode?: string(name='deployMode'),
        depositType?: string(name='depositType'),
        expireTime?: long(name='expireTime', description='过期时间'),
        failReason?: string(name='failReason'),
        gmtCreate?: long(name='gmtCreate'),
        gmtModified?: long(name='gmtModified'),
        hasUncompletedOrder?: boolean(name='hasUncompletedOrder'),
        iaaSType?: string(name='iaaSType'),
        mainVersion?: string(name='mainVersion'),
        modifier?: string(name='modifier'),
        paymentStatus?: string(name='paymentStatus'),
        paymentType?: string(name='paymentType'),
        regionId?: string(name='regionId'),
        resourceOwnerId?: string(name='resourceOwnerId'),
        securityMode?: string(name='securityMode'),
        vpcId?: string(name='vpcId'),
      }
    ](name='items'),
    maxResults?: int32(name='maxResults'),
    nextToken?: string(name='nextToken'),
    pageNumber?: long(name='pageNumber'),
    pageSize?: long(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListClustersResponse = {
  headers: map[string]string(name='headers'),
  body: ListClustersResponseBody(name='body'),
}

async function listClustersWithOptions(tmpReq: ListClustersRequest, runtime: Util.RuntimeOptions): ListClustersResponse {
  Util.validateModel(tmpReq);
  var request = new ListClustersShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listClustersParam)) {
    request.listClustersParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listClustersParam, 'listClustersParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listClustersParamShrink)) {
    body['listClustersParam'] = request.listClustersParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListClusters',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listClusters(request: ListClustersRequest): ListClustersResponse {
  var runtime = new Util.RuntimeOptions{};
  return listClustersWithOptions(request, runtime);
}

model ListComponentInstancesRequest {
  listComponentInstancesParam?: ListComponentInstancesParam(name='listComponentInstancesParam', description='listComponentsParam'),
}

model ListComponentInstancesShrinkRequest {
  listComponentInstancesParamShrink?: string(name='listComponentInstancesParam', description='listComponentsParam'),
}

model ListComponentInstancesResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName'),
        bizState?: string(name='bizState'),
        commissionState?: string(name='commissionState'),
        componentInstanceStatus?: string(name='componentInstanceStatus'),
        componentName?: string(name='componentName'),
        description?: string(name='description'),
        desiredState?: string(name='desiredState'),
        gmtCreate?: long(name='gmtCreate'),
        gmtModified?: long(name='gmtModified'),
        maintenanceState?: string(name='maintenanceState'),
        nodeId?: string(name='nodeId'),
        nodeName?: string(name='nodeName'),
        replica?: int32(name='replica'),
        statusReportTime?: long(name='statusReportTime'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListComponentInstancesResponse = {
  headers: map[string]string(name='headers'),
  body: ListComponentInstancesResponseBody(name='body'),
}

async function listComponentInstancesWithOptions(tmpReq: ListComponentInstancesRequest, runtime: Util.RuntimeOptions): ListComponentInstancesResponse {
  Util.validateModel(tmpReq);
  var request = new ListComponentInstancesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listComponentInstancesParam)) {
    request.listComponentInstancesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listComponentInstancesParam, 'listComponentInstancesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listComponentInstancesParamShrink)) {
    body['listComponentInstancesParam'] = request.listComponentInstancesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListComponentInstances',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listComponentInstances(request: ListComponentInstancesRequest): ListComponentInstancesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listComponentInstancesWithOptions(request, runtime);
}

model ListComponentsRequest {
  listComponentsParam?: ListComponentsParam(name='listComponentsParam', description='listComponentsParam'),
}

model ListComponentsShrinkRequest {
  listComponentsParamShrink?: string(name='listComponentsParam', description='listComponentsParam'),
}

model ListComponentsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName'),
        componentName?: string(name='componentName'),
        description?: string(name='description'),
        gmtCreate?: long(name='gmtCreate'),
        gmtModified?: long(name='gmtModified'),
        replica?: int32(name='replica'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListComponentsResponse = {
  headers: map[string]string(name='headers'),
  body: ListComponentsResponseBody(name='body'),
}

async function listComponentsWithOptions(tmpReq: ListComponentsRequest, runtime: Util.RuntimeOptions): ListComponentsResponse {
  Util.validateModel(tmpReq);
  var request = new ListComponentsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listComponentsParam)) {
    request.listComponentsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listComponentsParam, 'listComponentsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listComponentsParamShrink)) {
    body['listComponentsParam'] = request.listComponentsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListComponents',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listComponents(request: ListComponentsRequest): ListComponentsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listComponentsWithOptions(request, runtime);
}

model ListConfigFilesRequest {
  listConfigFilesParam?: ListConfigFilesParam(name='listConfigFilesParam', description='listConfigFilesParam'),
}

model ListConfigFilesShrinkRequest {
  listConfigFilesParamShrink?: string(name='listConfigFilesParam', description='listConfigFilesParam'),
}

model ListConfigFilesResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName'),
        clusterId?: string(name='clusterId'),
        description?: string(name='description'),
        fileFormat?: string(name='fileFormat'),
        fileGroup?: string(name='fileGroup'),
        fileLink?: string(name='fileLink'),
        fileMode?: string(name='fileMode'),
        fileName?: string(name='fileName'),
        fileOwner?: string(name='fileOwner'),
        filePath?: string(name='filePath'),
        nodeGroupId?: string(name='nodeGroupId'),
        nodeId?: string(name='nodeId'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListConfigFilesResponse = {
  headers: map[string]string(name='headers'),
  body: ListConfigFilesResponseBody(name='body'),
}

async function listConfigFilesWithOptions(tmpReq: ListConfigFilesRequest, runtime: Util.RuntimeOptions): ListConfigFilesResponse {
  Util.validateModel(tmpReq);
  var request = new ListConfigFilesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listConfigFilesParam)) {
    request.listConfigFilesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listConfigFilesParam, 'listConfigFilesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listConfigFilesParamShrink)) {
    body['listConfigFilesParam'] = request.listConfigFilesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListConfigFiles',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listConfigFiles(request: ListConfigFilesRequest): ListConfigFilesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listConfigFilesWithOptions(request, runtime);
}

model ListConfigHistoryRequest {
  listConfigHistoryParam?: ListConfigHistoryParam(name='listConfigHistoryParam', description='listConfigHistoryParam'),
}

model ListConfigHistoryShrinkRequest {
  listConfigHistoryParamShrink?: string(name='listConfigHistoryParam', description='listConfigHistoryParam'),
}

model ListConfigHistoryResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName'),
        changeType?: string(name='changeType'),
        clusterId?: string(name='clusterId'),
        configFileName?: string(name='configFileName'),
        configGroupId?: string(name='configGroupId'),
        configItemKey?: string(name='configItemKey'),
        configVersion?: string(name='configVersion'),
        creator?: string(name='creator'),
        description?: string(name='description'),
        gmtCreate?: long(name='gmtCreate'),
        gmtModified?: long(name='gmtModified'),
        modifier?: string(name='modifier'),
        newValue?: string(name='newValue'),
        nodeGroupId?: string(name='nodeGroupId'),
        nodeId?: string(name='nodeId'),
        oldValue?: string(name='oldValue'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListConfigHistoryResponse = {
  headers: map[string]string(name='headers'),
  body: ListConfigHistoryResponseBody(name='body'),
}

async function listConfigHistoryWithOptions(tmpReq: ListConfigHistoryRequest, runtime: Util.RuntimeOptions): ListConfigHistoryResponse {
  Util.validateModel(tmpReq);
  var request = new ListConfigHistoryShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listConfigHistoryParam)) {
    request.listConfigHistoryParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listConfigHistoryParam, 'listConfigHistoryParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listConfigHistoryParamShrink)) {
    body['listConfigHistoryParam'] = request.listConfigHistoryParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListConfigHistory',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listConfigHistory(request: ListConfigHistoryRequest): ListConfigHistoryResponse {
  var runtime = new Util.RuntimeOptions{};
  return listConfigHistoryWithOptions(request, runtime);
}

model ListConfigVersionsRequest {
  listConfigVersionsParam?: ListConfigVersionsParam(name='listConfigVersionsParam', description='listConfigVersionsParam'),
}

model ListConfigVersionsShrinkRequest {
  listConfigVersionsParamShrink?: string(name='listConfigVersionsParam', description='listConfigVersionsParam'),
}

model ListConfigVersionsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        clusterId?: string(name='clusterId'),
        configVersion?: string(name='configVersion'),
        creator?: string(name='creator'),
        description?: string(name='description'),
        gmtCreate?: long(name='gmtCreate'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListConfigVersionsResponse = {
  headers: map[string]string(name='headers'),
  body: ListConfigVersionsResponseBody(name='body'),
}

async function listConfigVersionsWithOptions(tmpReq: ListConfigVersionsRequest, runtime: Util.RuntimeOptions): ListConfigVersionsResponse {
  Util.validateModel(tmpReq);
  var request = new ListConfigVersionsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listConfigVersionsParam)) {
    request.listConfigVersionsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listConfigVersionsParam, 'listConfigVersionsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listConfigVersionsParamShrink)) {
    body['listConfigVersionsParam'] = request.listConfigVersionsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListConfigVersions',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listConfigVersions(request: ListConfigVersionsRequest): ListConfigVersionsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listConfigVersionsWithOptions(request, runtime);
}

model ListConfigsRequest {
  listConfigsParam?: ListConfigsParam(name='listConfigsParam', description='listConfigsParam'),
}

model ListConfigsShrinkRequest {
  listConfigsParamShrink?: string(name='listConfigsParam', description='listConfigsParam'),
}

model ListConfigsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName'),
        configFileName?: string(name='configFileName'),
        configItemEffectiveActions?: string(name='configItemEffectiveActions'),
        configItemEffectiveType?: string(name='configItemEffectiveType'),
        configItemKey?: string(name='configItemKey'),
        configItemValue?: string(name='configItemValue'),
        configItemValueIncrementStep?: string(name='configItemValueIncrementStep'),
        configItemValueMaximum?: string(name='configItemValueMaximum'),
        configItemValueMinimum?: string(name='configItemValueMinimum'),
        configItemValueReadOnly?: boolean(name='configItemValueReadOnly'),
        configItemValueType?: string(name='configItemValueType'),
        configItemValueUnit?: string(name='configItemValueUnit'),
        configType?: string(name='configType'),
        configVersion?: string(name='configVersion'),
        createTime?: long(name='createTime'),
        description?: string(name='description'),
        initValue?: string(name='initValue'),
        modifier?: string(name='modifier'),
        modifyTime?: long(name='modifyTime'),
        nodeGroupId?: string(name='nodeGroupId'),
        nodeId?: string(name='nodeId'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListConfigsResponse = {
  headers: map[string]string(name='headers'),
  body: ListConfigsResponseBody(name='body'),
}

async function listConfigsWithOptions(tmpReq: ListConfigsRequest, runtime: Util.RuntimeOptions): ListConfigsResponse {
  Util.validateModel(tmpReq);
  var request = new ListConfigsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listConfigsParam)) {
    request.listConfigsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listConfigsParam, 'listConfigsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listConfigsParamShrink)) {
    body['listConfigsParam'] = request.listConfigsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListConfigs',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listConfigs(request: ListConfigsRequest): ListConfigsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listConfigsWithOptions(request, runtime);
}

model ListKubeCustomerResourceRequest {
  listKubeCustomerResourcesParam?: ListKubeCustomerResourcesParam(name='listKubeCustomerResourcesParam', description='listKubeCustomerResourcesParam'),
}

model ListKubeCustomerResourceShrinkRequest {
  listKubeCustomerResourcesParamShrink?: string(name='listKubeCustomerResourcesParam', description='listKubeCustomerResourcesParam'),
}

model ListKubeCustomerResourceResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function listKubeCustomerResourceWithOptions(tmpReq: ListKubeCustomerResourceRequest, runtime: Util.RuntimeOptions): ListKubeCustomerResourceResponse {
  Util.validateModel(tmpReq);
  var request = new ListKubeCustomerResourceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listKubeCustomerResourcesParam)) {
    request.listKubeCustomerResourcesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listKubeCustomerResourcesParam, 'listKubeCustomerResourcesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listKubeCustomerResourcesParamShrink)) {
    body['listKubeCustomerResourcesParam'] = request.listKubeCustomerResourcesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListKubeCustomerResource',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listKubeCustomerResource(request: ListKubeCustomerResourceRequest): ListKubeCustomerResourceResponse {
  var runtime = new Util.RuntimeOptions{};
  return listKubeCustomerResourceWithOptions(request, runtime);
}

model ListKubeNativeResourcesRequest {
  listKubeNativeResourcesParam?: ListKubeNativeResourcesParam(name='listKubeNativeResourcesParam', description='listKubeNativeResourcesParam'),
}

model ListKubeNativeResourcesShrinkRequest {
  listKubeNativeResourcesParamShrink?: string(name='listKubeNativeResourcesParam', description='listKubeNativeResourcesParam'),
}

model ListKubeNativeResourcesResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function listKubeNativeResourcesWithOptions(tmpReq: ListKubeNativeResourcesRequest, runtime: Util.RuntimeOptions): ListKubeNativeResourcesResponse {
  Util.validateModel(tmpReq);
  var request = new ListKubeNativeResourcesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listKubeNativeResourcesParam)) {
    request.listKubeNativeResourcesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listKubeNativeResourcesParam, 'listKubeNativeResourcesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listKubeNativeResourcesParamShrink)) {
    body['listKubeNativeResourcesParam'] = request.listKubeNativeResourcesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListKubeNativeResources',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listKubeNativeResources(request: ListKubeNativeResourcesRequest): ListKubeNativeResourcesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listKubeNativeResourcesWithOptions(request, runtime);
}

model ListMainVersionsRequest {
  listMainVersionsParam?: ListMainVersionsParam(name='listMainVersionsParam'),
}

model ListMainVersionsShrinkRequest {
  listMainVersionsParamShrink?: string(name='listMainVersionsParam'),
}

model ListMainVersionsResponseBody = {
  code?: string(name='code'),
  data?: [
    ListMainVersionDTO
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListMainVersionsResponse = {
  headers: map[string]string(name='headers'),
  body: ListMainVersionsResponseBody(name='body'),
}

async function listMainVersionsWithOptions(tmpReq: ListMainVersionsRequest, runtime: Util.RuntimeOptions): ListMainVersionsResponse {
  Util.validateModel(tmpReq);
  var request = new ListMainVersionsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listMainVersionsParam)) {
    request.listMainVersionsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listMainVersionsParam, 'listMainVersionsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listMainVersionsParamShrink)) {
    body['listMainVersionsParam'] = request.listMainVersionsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListMainVersions',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listMainVersions(request: ListMainVersionsRequest): ListMainVersionsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listMainVersionsWithOptions(request, runtime);
}

model ListNodeDisksRequest {
  listNodeDiskParam?: ListNodeDiskParam(name='listNodeDiskParam', description='listNodeDiskParam'),
}

model ListNodeDisksShrinkRequest {
  listNodeDiskParamShrink?: string(name='listNodeDiskParam', description='listNodeDiskParam'),
}

model ListNodeDisksResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  data?: {
    items?: [
      ClusterDisk
    ](name='items', description='items'),
    pageNumber?: int32(name='pageNumber', description='pageNumber'),
    pageSize?: int32(name='pageSize', description='pageSize'),
    totalCount?: int32(name='totalCount', description='totalCount'),
  }(name='data', description='data'),
  requestId?: string(name='requestId', description='requestId'),
  success?: boolean(name='success', description='success'),
}

model ListNodeDisksResponse = {
  headers: map[string]string(name='headers'),
  body: ListNodeDisksResponseBody(name='body'),
}

async function listNodeDisksWithOptions(tmpReq: ListNodeDisksRequest, runtime: Util.RuntimeOptions): ListNodeDisksResponse {
  Util.validateModel(tmpReq);
  var request = new ListNodeDisksShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listNodeDiskParam)) {
    request.listNodeDiskParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listNodeDiskParam, 'listNodeDiskParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listNodeDiskParamShrink)) {
    body['listNodeDiskParam'] = request.listNodeDiskParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListNodeDisks',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listNodeDisks(request: ListNodeDisksRequest): ListNodeDisksResponse {
  var runtime = new Util.RuntimeOptions{};
  return listNodeDisksWithOptions(request, runtime);
}

model ListNodeGroupMetaRequest {
  listNodeGroupMetaParam?: ListNodeGroupMetaParam(name='listNodeGroupMetaParam', description='listNodeGroupMetaParam'),
}

model ListNodeGroupMetaShrinkRequest {
  listNodeGroupMetaParamShrink?: string(name='listNodeGroupMetaParam', description='listNodeGroupMetaParam'),
}

model ListNodeGroupMetaResponseBody = {
  code?: string(name='code'),
  data?: [
    NodeGroupMetaDTO
  ](name='data', description='List<NodeGroupMetaDTO>'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListNodeGroupMetaResponse = {
  headers: map[string]string(name='headers'),
  body: ListNodeGroupMetaResponseBody(name='body'),
}

async function listNodeGroupMetaWithOptions(tmpReq: ListNodeGroupMetaRequest, runtime: Util.RuntimeOptions): ListNodeGroupMetaResponse {
  Util.validateModel(tmpReq);
  var request = new ListNodeGroupMetaShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listNodeGroupMetaParam)) {
    request.listNodeGroupMetaParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listNodeGroupMetaParam, 'listNodeGroupMetaParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listNodeGroupMetaParamShrink)) {
    body['listNodeGroupMetaParam'] = request.listNodeGroupMetaParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListNodeGroupMeta',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listNodeGroupMeta(request: ListNodeGroupMetaRequest): ListNodeGroupMetaResponse {
  var runtime = new Util.RuntimeOptions{};
  return listNodeGroupMetaWithOptions(request, runtime);
}

model ListNodesRequest {
  listNodeParam?: ListNodesParam(name='listNodeParam', description='listNodesParam'),
}

model ListNodesShrinkRequest {
  listNodeParamShrink?: string(name='listNodeParam', description='listNodesParam'),
}

model ListNodesResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        autoRenew?: boolean(name='autoRenew', description='autoRenew'),
        creator?: string(name='creator'),
        dataDiskCapacity?: int32(name='dataDiskCapacity'),
        dataDiskCount?: int32(name='dataDiskCount'),
        dataDiskType?: string(name='dataDiskType'),
        expireTime?: long(name='expireTime', description='expireTime'),
        fqdn?: string(name='fqdn', description='fqdn'),
        gmtCreate?: long(name='gmtCreate', description='gmtCreate'),
        gmtModified?: long(name='gmtModified', description='gmtModified'),
        index?: int32(name='index', description='index'),
        instanceType?: string(name='instanceType', description='instanceType'),
        modifier?: string(name='modifier', description='modifier'),
        nodeGroupId?: string(name='nodeGroupId', description='nodeGroupId'),
        nodeGroupType?: string(name='nodeGroupType', description='nodeGroupType'),
        nodeId?: string(name='nodeId', description='nodeId'),
        nodeName?: string(name='nodeName', description='nodeName'),
        nodeResourceType?: string(name='nodeResourceType', description='nodeResourceType'),
        nodeStatus?: string(name='nodeStatus', description='nodeStatus'),
        privateIp?: string(name='privateIp', description='privateIp'),
        publicIp?: string(name='publicIp', description='publicIp'),
        serialNumber?: string(name='serialNumber', description='serialNumber'),
        systemDiskCapacity?: int32(name='systemDiskCapacity'),
        systemDiskType?: string(name='systemDiskType'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListNodesResponse = {
  headers: map[string]string(name='headers'),
  body: ListNodesResponseBody(name='body'),
}

async function listNodesWithOptions(tmpReq: ListNodesRequest, runtime: Util.RuntimeOptions): ListNodesResponse {
  Util.validateModel(tmpReq);
  var request = new ListNodesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listNodeParam)) {
    request.listNodeParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listNodeParam, 'listNodeParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listNodeParamShrink)) {
    body['listNodeParam'] = request.listNodeParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListNodes',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listNodes(request: ListNodesRequest): ListNodesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listNodesWithOptions(request, runtime);
}

model ListOnKubeDedicatedNodesRequest {
  listOnKubeDedicatedNodesParam?: ListOnKubeDedicatedNodesParam(name='listOnKubeDedicatedNodesParam', description='listOnKubeDedicatedNodesParam'),
}

model ListOnKubeDedicatedNodesShrinkRequest {
  listOnKubeDedicatedNodesParamShrink?: string(name='listOnKubeDedicatedNodesParam', description='listOnKubeDedicatedNodesParam'),
}

model ListOnKubeDedicatedNodesResponseBody = {
  code?: string(name='code'),
  data?: [ string ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListOnKubeDedicatedNodesResponse = {
  headers: map[string]string(name='headers'),
  body: ListOnKubeDedicatedNodesResponseBody(name='body'),
}

async function listOnKubeDedicatedNodesWithOptions(tmpReq: ListOnKubeDedicatedNodesRequest, runtime: Util.RuntimeOptions): ListOnKubeDedicatedNodesResponse {
  Util.validateModel(tmpReq);
  var request = new ListOnKubeDedicatedNodesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listOnKubeDedicatedNodesParam)) {
    request.listOnKubeDedicatedNodesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listOnKubeDedicatedNodesParam, 'listOnKubeDedicatedNodesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listOnKubeDedicatedNodesParamShrink)) {
    body['listOnKubeDedicatedNodesParam'] = request.listOnKubeDedicatedNodesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListOnKubeDedicatedNodes',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listOnKubeDedicatedNodes(request: ListOnKubeDedicatedNodesRequest): ListOnKubeDedicatedNodesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listOnKubeDedicatedNodesWithOptions(request, runtime);
}

model ListReportsRequest {
  listReportsParam?: ListReportsParam(name='listReportsParam'),
}

model ListReportsShrinkRequest {
  listReportsParamShrink?: string(name='listReportsParam'),
}

model ListReportsResponseBody = {
  code?: string(name='code'),
  data?: [
    ListReportsResult
  ](name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListReportsResponse = {
  headers: map[string]string(name='headers'),
  body: ListReportsResponseBody(name='body'),
}

async function listReportsWithOptions(tmpReq: ListReportsRequest, runtime: Util.RuntimeOptions): ListReportsResponse {
  Util.validateModel(tmpReq);
  var request = new ListReportsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listReportsParam)) {
    request.listReportsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listReportsParam, 'listReportsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listReportsParamShrink)) {
    body['listReportsParam'] = request.listReportsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListReports',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listReports(request: ListReportsRequest): ListReportsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listReportsWithOptions(request, runtime);
}

model ListResourceHealthRequest {
  listResourceHealthParam?: ListResourceHealthParam(name='listResourceHealthParam', description='listResourceHealthParam'),
}

model ListResourceHealthShrinkRequest {
  listResourceHealthParamShrink?: string(name='listResourceHealthParam', description='listResourceHealthParam'),
}

model ListResourceHealthResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName', description='应用名'),
        childHealthStatusSummary?: HealthSummary(name='childHealthStatusSummary', description='组件健康状态'),
        componentName?: string(name='componentName', description='组件名'),
        healthMessage?: string(name='healthMessage', description='健康信息'),
        healthStatus?: string(name='healthStatus', description='健康状态'),
        nodeId?: string(name='nodeId', description='节点id'),
        nodeName?: string(name='nodeName', description='节点名称'),
        reportTime?: long(name='reportTime', description='汇报时间'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListResourceHealthResponse = {
  headers: map[string]string(name='headers'),
  body: ListResourceHealthResponseBody(name='body'),
}

async function listResourceHealthWithOptions(tmpReq: ListResourceHealthRequest, runtime: Util.RuntimeOptions): ListResourceHealthResponse {
  Util.validateModel(tmpReq);
  var request = new ListResourceHealthShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listResourceHealthParam)) {
    request.listResourceHealthParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listResourceHealthParam, 'listResourceHealthParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listResourceHealthParamShrink)) {
    body['listResourceHealthParam'] = request.listResourceHealthParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListResourceHealth',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listResourceHealth(request: ListResourceHealthRequest): ListResourceHealthResponse {
  var runtime = new Util.RuntimeOptions{};
  return listResourceHealthWithOptions(request, runtime);
}

model ListResourceHealthInspectionsRequest {
  listResourceHealthInspectionsParam?: ListResourceHealthParam(name='listResourceHealthInspectionsParam', description='listResourceHealthInspectionsParam'),
}

model ListResourceHealthInspectionsShrinkRequest {
  listResourceHealthInspectionsParamShrink?: string(name='listResourceHealthInspectionsParam', description='listResourceHealthInspectionsParam'),
}

model ListResourceHealthInspectionsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        applicationName?: string(name='applicationName', description='应用名'),
        componentName?: string(name='componentName', description='组件名'),
        healthMessage?: string(name='healthMessage', description='健康信息'),
        healthStatus?: string(name='healthStatus', description='健康状态'),
        inspectionName?: string(name='inspectionName', description='巡检项名称'),
        nodeId?: string(name='nodeId', description='节点id'),
        nodeName?: string(name='nodeName', description='节点名称'),
        reportTime?: long(name='reportTime', description='汇报时间'),
        ruleName?: string(name='ruleName', description='巡检规则名称'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListResourceHealthInspectionsResponse = {
  headers: map[string]string(name='headers'),
  body: ListResourceHealthInspectionsResponseBody(name='body'),
}

async function listResourceHealthInspectionsWithOptions(tmpReq: ListResourceHealthInspectionsRequest, runtime: Util.RuntimeOptions): ListResourceHealthInspectionsResponse {
  Util.validateModel(tmpReq);
  var request = new ListResourceHealthInspectionsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listResourceHealthInspectionsParam)) {
    request.listResourceHealthInspectionsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listResourceHealthInspectionsParam, 'listResourceHealthInspectionsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listResourceHealthInspectionsParamShrink)) {
    body['listResourceHealthInspectionsParam'] = request.listResourceHealthInspectionsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListResourceHealthInspections',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listResourceHealthInspections(request: ListResourceHealthInspectionsRequest): ListResourceHealthInspectionsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listResourceHealthInspectionsWithOptions(request, runtime);
}

model ListStackApplicationsRequest {
  listStackApplicationParam?: ListStackApplicationParam(name='listStackApplicationParam', description='ListApplicationParam'),
}

model ListStackApplicationsShrinkRequest {
  listStackApplicationParamShrink?: string(name='listStackApplicationParam', description='ListApplicationParam'),
}

model ListStackApplicationsResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        createTime?: long(name='createTime'),
        iaasType?: string(name='iaasType'),
        name?: string(name='name'),
        version?: string(name='version'),
      }
    ](name='items'),
    pageNumber?: long(name='pageNumber'),
    pageSize?: long(name='pageSize'),
    totalCount?: long(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListStackApplicationsResponse = {
  headers: map[string]string(name='headers'),
  body: ListStackApplicationsResponseBody(name='body'),
}

async function listStackApplicationsWithOptions(tmpReq: ListStackApplicationsRequest, runtime: Util.RuntimeOptions): ListStackApplicationsResponse {
  Util.validateModel(tmpReq);
  var request = new ListStackApplicationsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listStackApplicationParam)) {
    request.listStackApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listStackApplicationParam, 'listStackApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listStackApplicationParamShrink)) {
    body['listStackApplicationParam'] = request.listStackApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListStackApplications',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listStackApplications(request: ListStackApplicationsRequest): ListStackApplicationsResponse {
  var runtime = new Util.RuntimeOptions{};
  return listStackApplicationsWithOptions(request, runtime);
}

model ListWorkflowActivityInstancesRequest {
  listWorkflowActivityInstancesParam?: ListWorkflowActivityInstancesParam(name='listWorkflowActivityInstancesParam', description='查询工作流实例下面所有活动实例列表'),
}

model ListWorkflowActivityInstancesShrinkRequest {
  listWorkflowActivityInstancesParamShrink?: string(name='listWorkflowActivityInstancesParam', description='查询工作流实例下面所有活动实例列表'),
}

model ListWorkflowActivityInstancesResponseBody = {
  code?: string(name='code'),
  data?: {
    items?: [ 
      {
        activityInstanceId?: long(name='activityInstanceId'),
        activityInstanceName?: string(name='activityInstanceName'),
        activityInstanceStatus?: string(name='activityInstanceStatus'),
        endTime?: long(name='endTime'),
        executionMsg?: string(name='executionMsg'),
        inputContext?: string(name='inputContext'),
        outputContext?: string(name='outputContext'),
        retriedTimes?: int32(name='retriedTimes'),
        signalBizCodeAfterExecution?: string(name='signalBizCodeAfterExecution'),
        signalBizCodeBeforeExecution?: string(name='signalBizCodeBeforeExecution'),
        startTime?: long(name='startTime'),
        timeoutDate?: long(name='timeoutDate'),
        workflowInstanceId?: long(name='workflowInstanceId'),
      }
    ](name='items'),
    pageNumber?: int32(name='pageNumber'),
    pageSize?: int32(name='pageSize'),
    totalCount?: int32(name='totalCount'),
  }(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model ListWorkflowActivityInstancesResponse = {
  headers: map[string]string(name='headers'),
  body: ListWorkflowActivityInstancesResponseBody(name='body'),
}

async function listWorkflowActivityInstancesWithOptions(tmpReq: ListWorkflowActivityInstancesRequest, runtime: Util.RuntimeOptions): ListWorkflowActivityInstancesResponse {
  Util.validateModel(tmpReq);
  var request = new ListWorkflowActivityInstancesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.listWorkflowActivityInstancesParam)) {
    request.listWorkflowActivityInstancesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.listWorkflowActivityInstancesParam, 'listWorkflowActivityInstancesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.listWorkflowActivityInstancesParamShrink)) {
    body['listWorkflowActivityInstancesParam'] = request.listWorkflowActivityInstancesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ListWorkflowActivityInstances',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function listWorkflowActivityInstances(request: ListWorkflowActivityInstancesRequest): ListWorkflowActivityInstancesResponse {
  var runtime = new Util.RuntimeOptions{};
  return listWorkflowActivityInstancesWithOptions(request, runtime);
}

model ModifyPrepayInstanceSpecRequest {
  modifyPrepayInstanceSpecParam?: ModifyPrepayInstanceSpecParam(name='modifyPrepayInstanceSpecParam'),
}

model ModifyPrepayInstanceSpecShrinkRequest {
  modifyPrepayInstanceSpecParamShrink?: string(name='modifyPrepayInstanceSpecParam'),
}

model ModifyPrepayInstanceSpecResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  data?: string(name='data', description='data'),
  requestId?: string(name='requestId', description='requestId'),
  success?: boolean(name='success', description='success'),
}

model ModifyPrepayInstanceSpecResponse = {
  headers: map[string]string(name='headers'),
  body: ModifyPrepayInstanceSpecResponseBody(name='body'),
}

async function modifyPrepayInstanceSpecWithOptions(tmpReq: ModifyPrepayInstanceSpecRequest, runtime: Util.RuntimeOptions): ModifyPrepayInstanceSpecResponse {
  Util.validateModel(tmpReq);
  var request = new ModifyPrepayInstanceSpecShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.modifyPrepayInstanceSpecParam)) {
    request.modifyPrepayInstanceSpecParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.modifyPrepayInstanceSpecParam, 'modifyPrepayInstanceSpecParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.modifyPrepayInstanceSpecParamShrink)) {
    body['modifyPrepayInstanceSpecParam'] = request.modifyPrepayInstanceSpecParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ModifyPrepayInstanceSpec',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function modifyPrepayInstanceSpec(request: ModifyPrepayInstanceSpecRequest): ModifyPrepayInstanceSpecResponse {
  var runtime = new Util.RuntimeOptions{};
  return modifyPrepayInstanceSpecWithOptions(request, runtime);
}

model PlanPortalGetResponseBody = {
  requestId?: string(name='RequestId', description='Id of the request'),
}

model PlanPortalGetResponse = {
  headers: map[string]string(name='headers'),
  body: PlanPortalGetResponseBody(name='body'),
}

async function planPortalGetWithOptions(runtime: Util.RuntimeOptions): PlanPortalGetResponse {
  var req = new OpenApi.OpenApiRequest{};
  var params = new OpenApi.Params{
    action = 'PlanPortalGet',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function planPortalGet(): PlanPortalGetResponse {
  var runtime = new Util.RuntimeOptions{};
  return planPortalGetWithOptions(runtime);
}

model QueryGrafanaDataRequest {
  getGrafanaDataParam?: QueryGrafanaDataParam(name='getGrafanaDataParam'),
}

model QueryGrafanaDataShrinkRequest {
  getGrafanaDataParamShrink?: string(name='getGrafanaDataParam'),
}

model QueryGrafanaDataResponseBody = {
  code?: string(name='code'),
  data?: string(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model QueryGrafanaDataResponse = {
  headers: map[string]string(name='headers'),
  body: QueryGrafanaDataResponseBody(name='body'),
}

async function queryGrafanaDataWithOptions(tmpReq: QueryGrafanaDataRequest, runtime: Util.RuntimeOptions): QueryGrafanaDataResponse {
  Util.validateModel(tmpReq);
  var request = new QueryGrafanaDataShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.getGrafanaDataParam)) {
    request.getGrafanaDataParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.getGrafanaDataParam, 'getGrafanaDataParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.getGrafanaDataParamShrink)) {
    body['getGrafanaDataParam'] = request.getGrafanaDataParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'QueryGrafanaData',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function queryGrafanaData(request: QueryGrafanaDataRequest): QueryGrafanaDataResponse {
  var runtime = new Util.RuntimeOptions{};
  return queryGrafanaDataWithOptions(request, runtime);
}

model RefreshStackApplicationRequest {
  refreshStackApplicationParam?: RefreshStackApplicationParam(name='refreshStackApplicationParam'),
}

model RefreshStackApplicationShrinkRequest {
  refreshStackApplicationParamShrink?: string(name='refreshStackApplicationParam'),
}

model RefreshStackApplicationResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function refreshStackApplicationWithOptions(tmpReq: RefreshStackApplicationRequest, runtime: Util.RuntimeOptions): RefreshStackApplicationResponse {
  Util.validateModel(tmpReq);
  var request = new RefreshStackApplicationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.refreshStackApplicationParam)) {
    request.refreshStackApplicationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.refreshStackApplicationParam, 'refreshStackApplicationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.refreshStackApplicationParamShrink)) {
    body['refreshStackApplicationParam'] = request.refreshStackApplicationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RefreshStackApplication',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function refreshStackApplication(request: RefreshStackApplicationRequest): RefreshStackApplicationResponse {
  var runtime = new Util.RuntimeOptions{};
  return refreshStackApplicationWithOptions(request, runtime);
}

model RegisterClusterAckResourceRequest {
  registerClusterAckResourceParam?: RegisterClusterAckResourceParam(name='registerClusterAckResourceParam', description='registerClusterAckResourceParam'),
}

model RegisterClusterAckResourceShrinkRequest {
  registerClusterAckResourceParamShrink?: string(name='registerClusterAckResourceParam', description='registerClusterAckResourceParam'),
}

model RegisterClusterAckResourceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function registerClusterAckResourceWithOptions(tmpReq: RegisterClusterAckResourceRequest, runtime: Util.RuntimeOptions): RegisterClusterAckResourceResponse {
  Util.validateModel(tmpReq);
  var request = new RegisterClusterAckResourceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.registerClusterAckResourceParam)) {
    request.registerClusterAckResourceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.registerClusterAckResourceParam, 'registerClusterAckResourceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.registerClusterAckResourceParamShrink)) {
    body['registerClusterAckResourceParam'] = request.registerClusterAckResourceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RegisterClusterAckResource',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function registerClusterAckResource(request: RegisterClusterAckResourceRequest): RegisterClusterAckResourceResponse {
  var runtime = new Util.RuntimeOptions{};
  return registerClusterAckResourceWithOptions(request, runtime);
}

model RegisterProductRoleResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function registerProductRoleWithOptions(runtime: Util.RuntimeOptions): RegisterProductRoleResponse {
  var req = new OpenApi.OpenApiRequest{};
  var params = new OpenApi.Params{
    action = 'RegisterProductRole',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function registerProductRole(): RegisterProductRoleResponse {
  var runtime = new Util.RuntimeOptions{};
  return registerProductRoleWithOptions(runtime);
}

model ReleaseBindingAckClusterRequest {
  releaseBindingAckClusterParam?: ReleaseBindingAckClusterParam(name='releaseBindingAckClusterParam', description='releaseBindingAckClusterParam'),
}

model ReleaseBindingAckClusterShrinkRequest {
  releaseBindingAckClusterParamShrink?: string(name='releaseBindingAckClusterParam', description='releaseBindingAckClusterParam'),
}

model ReleaseBindingAckClusterResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function releaseBindingAckClusterWithOptions(tmpReq: ReleaseBindingAckClusterRequest, runtime: Util.RuntimeOptions): ReleaseBindingAckClusterResponse {
  Util.validateModel(tmpReq);
  var request = new ReleaseBindingAckClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.releaseBindingAckClusterParam)) {
    request.releaseBindingAckClusterParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.releaseBindingAckClusterParam, 'releaseBindingAckClusterParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.releaseBindingAckClusterParamShrink)) {
    body['releaseBindingAckClusterParam'] = request.releaseBindingAckClusterParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ReleaseBindingAckCluster',
    version = '2021-03-31',
    protocol = 'HTTP',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function releaseBindingAckCluster(request: ReleaseBindingAckClusterRequest): ReleaseBindingAckClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return releaseBindingAckClusterWithOptions(request, runtime);
}

model ReleaseClusterRequest {
  releaseClusterParam?: ReleaseClusterParam(name='releaseClusterParam', description='releaseClusterParam'),
}

model ReleaseClusterShrinkRequest {
  releaseClusterParamShrink?: string(name='releaseClusterParam', description='releaseClusterParam'),
}

model ReleaseClusterResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function releaseClusterWithOptions(tmpReq: ReleaseClusterRequest, runtime: Util.RuntimeOptions): ReleaseClusterResponse {
  Util.validateModel(tmpReq);
  var request = new ReleaseClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.releaseClusterParam)) {
    request.releaseClusterParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.releaseClusterParam, 'releaseClusterParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.releaseClusterParamShrink)) {
    body['releaseClusterParam'] = request.releaseClusterParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ReleaseCluster',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function releaseCluster(request: ReleaseClusterRequest): ReleaseClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return releaseClusterWithOptions(request, runtime);
}

model ReleaseOnEcsClusterRequest {
  releaseOnEcsClusterParam?: ReleaseOnEcsClusterParam(name='ReleaseOnEcsClusterParam', description='releaseOnEcsClusterParam'),
}

model ReleaseOnEcsClusterShrinkRequest {
  releaseOnEcsClusterParamShrink?: string(name='ReleaseOnEcsClusterParam', description='releaseOnEcsClusterParam'),
}

model ReleaseOnEcsClusterResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function releaseOnEcsClusterWithOptions(tmpReq: ReleaseOnEcsClusterRequest, runtime: Util.RuntimeOptions): ReleaseOnEcsClusterResponse {
  Util.validateModel(tmpReq);
  var request = new ReleaseOnEcsClusterShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.releaseOnEcsClusterParam)) {
    request.releaseOnEcsClusterParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.releaseOnEcsClusterParam, 'ReleaseOnEcsClusterParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.releaseOnEcsClusterParamShrink)) {
    body['ReleaseOnEcsClusterParam'] = request.releaseOnEcsClusterParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ReleaseOnEcsCluster',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function releaseOnEcsCluster(request: ReleaseOnEcsClusterRequest): ReleaseOnEcsClusterResponse {
  var runtime = new Util.RuntimeOptions{};
  return releaseOnEcsClusterWithOptions(request, runtime);
}

model RemoveSuspendPointOnWorkflowInstanceRequest {
  removeSuspendPointOnWorkflowInstanceParam?: RemoveSuspendPointOnWorkflowInstanceParam(name='removeSuspendPointOnWorkflowInstanceParam'),
}

model RemoveSuspendPointOnWorkflowInstanceShrinkRequest {
  removeSuspendPointOnWorkflowInstanceParamShrink?: string(name='removeSuspendPointOnWorkflowInstanceParam'),
}

model RemoveSuspendPointOnWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function removeSuspendPointOnWorkflowInstanceWithOptions(tmpReq: RemoveSuspendPointOnWorkflowInstanceRequest, runtime: Util.RuntimeOptions): RemoveSuspendPointOnWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new RemoveSuspendPointOnWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.removeSuspendPointOnWorkflowInstanceParam)) {
    request.removeSuspendPointOnWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.removeSuspendPointOnWorkflowInstanceParam, 'removeSuspendPointOnWorkflowInstanceParam', 'json');
  }
  var query = {};
  if (!Util.isUnset(request.removeSuspendPointOnWorkflowInstanceParamShrink)) {
    query['removeSuspendPointOnWorkflowInstanceParam'] = request.removeSuspendPointOnWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
  };
  var params = new OpenApi.Params{
    action = 'RemoveSuspendPointOnWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function removeSuspendPointOnWorkflowInstance(request: RemoveSuspendPointOnWorkflowInstanceRequest): RemoveSuspendPointOnWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return removeSuspendPointOnWorkflowInstanceWithOptions(request, runtime);
}

model RestartWorkflowInstanceRequest {
  restartWorkflowInstanceParam?: RestartWorkflowInstanceParam(name='restartWorkflowInstanceParam'),
}

model RestartWorkflowInstanceShrinkRequest {
  restartWorkflowInstanceParamShrink?: string(name='restartWorkflowInstanceParam'),
}

model RestartWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function restartWorkflowInstanceWithOptions(tmpReq: RestartWorkflowInstanceRequest, runtime: Util.RuntimeOptions): RestartWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new RestartWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.restartWorkflowInstanceParam)) {
    request.restartWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.restartWorkflowInstanceParam, 'restartWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.restartWorkflowInstanceParamShrink)) {
    body['restartWorkflowInstanceParam'] = request.restartWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RestartWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function restartWorkflowInstance(request: RestartWorkflowInstanceRequest): RestartWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return restartWorkflowInstanceWithOptions(request, runtime);
}

model ResumeWorkflowInstanceRequest {
  resumeWorkflowInstanceParam?: ResumeWorkflowInstanceParam(name='resumeWorkflowInstanceParam'),
}

model ResumeWorkflowInstanceShrinkRequest {
  resumeWorkflowInstanceParamShrink?: string(name='resumeWorkflowInstanceParam'),
}

model ResumeWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function resumeWorkflowInstanceWithOptions(tmpReq: ResumeWorkflowInstanceRequest, runtime: Util.RuntimeOptions): ResumeWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new ResumeWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.resumeWorkflowInstanceParam)) {
    request.resumeWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.resumeWorkflowInstanceParam, 'resumeWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.resumeWorkflowInstanceParamShrink)) {
    body['resumeWorkflowInstanceParam'] = request.resumeWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'ResumeWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function resumeWorkflowInstance(request: ResumeWorkflowInstanceRequest): ResumeWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return resumeWorkflowInstanceWithOptions(request, runtime);
}

model RetryClusterOperationRequest {
  retryClusterOperationParam?: RetryClusterOperationParam(name='retryClusterOperationParam', description='retryClusterOperationParam'),
}

model RetryClusterOperationShrinkRequest {
  retryClusterOperationParamShrink?: string(name='retryClusterOperationParam', description='retryClusterOperationParam'),
}

model RetryClusterOperationResponse = {
  headers: map[string]string(name='headers'),
  body: NoneResponse  
}

async function retryClusterOperationWithOptions(tmpReq: RetryClusterOperationRequest, runtime: Util.RuntimeOptions): RetryClusterOperationResponse {
  Util.validateModel(tmpReq);
  var request = new RetryClusterOperationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.retryClusterOperationParam)) {
    request.retryClusterOperationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.retryClusterOperationParam, 'retryClusterOperationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.retryClusterOperationParamShrink)) {
    body['retryClusterOperationParam'] = request.retryClusterOperationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RetryClusterOperation',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function retryClusterOperation(request: RetryClusterOperationRequest): RetryClusterOperationResponse {
  var runtime = new Util.RuntimeOptions{};
  return retryClusterOperationWithOptions(request, runtime);
}

model RetryClusterOperationTaskRequest {
  retryClusterOperationTaskParam?: RetryClusterOperationTaskParam(name='retryClusterOperationTaskParam', description='retryClusterOperationTaskParam'),
}

model RetryClusterOperationTaskShrinkRequest {
  retryClusterOperationTaskParamShrink?: string(name='retryClusterOperationTaskParam', description='retryClusterOperationTaskParam'),
}

model RetryClusterOperationTaskResponse = {
  headers: map[string]string(name='headers'),
  body: NoneResponse  
}

async function retryClusterOperationTaskWithOptions(tmpReq: RetryClusterOperationTaskRequest, runtime: Util.RuntimeOptions): RetryClusterOperationTaskResponse {
  Util.validateModel(tmpReq);
  var request = new RetryClusterOperationTaskShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.retryClusterOperationTaskParam)) {
    request.retryClusterOperationTaskParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.retryClusterOperationTaskParam, 'retryClusterOperationTaskParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.retryClusterOperationTaskParamShrink)) {
    body['retryClusterOperationTaskParam'] = request.retryClusterOperationTaskParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RetryClusterOperationTask',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function retryClusterOperationTask(request: RetryClusterOperationTaskRequest): RetryClusterOperationTaskResponse {
  var runtime = new Util.RuntimeOptions{};
  return retryClusterOperationTaskWithOptions(request, runtime);
}

model RetryWorkflowInstanceRequest {
  retryWorkflowInstanceParam?: RetryWorkflowInstanceParam(name='retryWorkflowInstanceParam'),
}

model RetryWorkflowInstanceShrinkRequest {
  retryWorkflowInstanceParamShrink?: string(name='retryWorkflowInstanceParam'),
}

model RetryWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function retryWorkflowInstanceWithOptions(tmpReq: RetryWorkflowInstanceRequest, runtime: Util.RuntimeOptions): RetryWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new RetryWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.retryWorkflowInstanceParam)) {
    request.retryWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.retryWorkflowInstanceParam, 'retryWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.retryWorkflowInstanceParamShrink)) {
    body['retryWorkflowInstanceParam'] = request.retryWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RetryWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function retryWorkflowInstance(request: RetryWorkflowInstanceRequest): RetryWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return retryWorkflowInstanceWithOptions(request, runtime);
}

model RollbackWorkflowInstanceRequest {
  rollbackWorkflowInstanceParam?: RollbackWorkflowInstanceParam(name='rollbackWorkflowInstanceParam'),
}

model RollbackWorkflowInstanceShrinkRequest {
  rollbackWorkflowInstanceParamShrink?: string(name='rollbackWorkflowInstanceParam'),
}

model RollbackWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function rollbackWorkflowInstanceWithOptions(tmpReq: RollbackWorkflowInstanceRequest, runtime: Util.RuntimeOptions): RollbackWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new RollbackWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.rollbackWorkflowInstanceParam)) {
    request.rollbackWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.rollbackWorkflowInstanceParam, 'rollbackWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.rollbackWorkflowInstanceParamShrink)) {
    body['rollbackWorkflowInstanceParam'] = request.rollbackWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RollbackWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function rollbackWorkflowInstance(request: RollbackWorkflowInstanceRequest): RollbackWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return rollbackWorkflowInstanceWithOptions(request, runtime);
}

model RunActionRequest {
  runActionParam?: RunActionParam(name='runActionParam', description='runActionParam'),
}

model RunActionShrinkRequest {
  runActionParamShrink?: string(name='runActionParam', description='runActionParam'),
}

model RunActionResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function runActionWithOptions(tmpReq: RunActionRequest, runtime: Util.RuntimeOptions): RunActionResponse {
  Util.validateModel(tmpReq);
  var request = new RunActionShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.runActionParam)) {
    request.runActionParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.runActionParam, 'runActionParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.runActionParamShrink)) {
    body['runActionParam'] = request.runActionParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'RunAction',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function runAction(request: RunActionRequest): RunActionResponse {
  var runtime = new Util.RuntimeOptions{};
  return runActionWithOptions(request, runtime);
}

model SignalWorkflowInstanceRequest {
  signalWorkflowInstanceParam?: SignalWorkflowInstanceParam(name='SignalWorkflowInstanceParam'),
}

model SignalWorkflowInstanceShrinkRequest {
  signalWorkflowInstanceParamShrink?: string(name='SignalWorkflowInstanceParam'),
}

model SignalWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function signalWorkflowInstanceWithOptions(tmpReq: SignalWorkflowInstanceRequest, runtime: Util.RuntimeOptions): SignalWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new SignalWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.signalWorkflowInstanceParam)) {
    request.signalWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.signalWorkflowInstanceParam, 'SignalWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.signalWorkflowInstanceParamShrink)) {
    body['SignalWorkflowInstanceParam'] = request.signalWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'SignalWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function signalWorkflowInstance(request: SignalWorkflowInstanceRequest): SignalWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return signalWorkflowInstanceWithOptions(request, runtime);
}

model SkipClusterOperationTaskRequest {
  skipClusterOperationTaskParam?: SkipClusterOperationTaskParam(name='skipClusterOperationTaskParam', description='skipClusterOperationTaskParam'),
}

model SkipClusterOperationTaskShrinkRequest {
  skipClusterOperationTaskParamShrink?: string(name='skipClusterOperationTaskParam', description='skipClusterOperationTaskParam'),
}

model SkipClusterOperationTaskResponse = {
  headers: map[string]string(name='headers'),
  body: NoneResponse  
}

async function skipClusterOperationTaskWithOptions(tmpReq: SkipClusterOperationTaskRequest, runtime: Util.RuntimeOptions): SkipClusterOperationTaskResponse {
  Util.validateModel(tmpReq);
  var request = new SkipClusterOperationTaskShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.skipClusterOperationTaskParam)) {
    request.skipClusterOperationTaskParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.skipClusterOperationTaskParam, 'skipClusterOperationTaskParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.skipClusterOperationTaskParamShrink)) {
    body['skipClusterOperationTaskParam'] = request.skipClusterOperationTaskParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'SkipClusterOperationTask',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function skipClusterOperationTask(request: SkipClusterOperationTaskRequest): SkipClusterOperationTaskResponse {
  var runtime = new Util.RuntimeOptions{};
  return skipClusterOperationTaskWithOptions(request, runtime);
}

model SkipWorkflowInstanceRequest {
  skipWorkflowInstanceParam?: SkipWorkflowInstanceParam(name='skipWorkflowInstanceParam', description='SkipWorkflowInstanceParam'),
}

model SkipWorkflowInstanceShrinkRequest {
  skipWorkflowInstanceParamShrink?: string(name='skipWorkflowInstanceParam', description='SkipWorkflowInstanceParam'),
}

model SkipWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function skipWorkflowInstanceWithOptions(tmpReq: SkipWorkflowInstanceRequest, runtime: Util.RuntimeOptions): SkipWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new SkipWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.skipWorkflowInstanceParam)) {
    request.skipWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.skipWorkflowInstanceParam, 'skipWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.skipWorkflowInstanceParamShrink)) {
    body['skipWorkflowInstanceParam'] = request.skipWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'SkipWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function skipWorkflowInstance(request: SkipWorkflowInstanceRequest): SkipWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return skipWorkflowInstanceWithOptions(request, runtime);
}

model SuspendWorkflowInstanceRequest {
  suspendWorkflowInstanceParam?: SuspendWorkflowInstanceParam(name='suspendWorkflowInstanceParam'),
}

model SuspendWorkflowInstanceShrinkRequest {
  suspendWorkflowInstanceParamShrink?: string(name='suspendWorkflowInstanceParam'),
}

model SuspendWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function suspendWorkflowInstanceWithOptions(tmpReq: SuspendWorkflowInstanceRequest, runtime: Util.RuntimeOptions): SuspendWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new SuspendWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.suspendWorkflowInstanceParam)) {
    request.suspendWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.suspendWorkflowInstanceParam, 'suspendWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.suspendWorkflowInstanceParamShrink)) {
    body['suspendWorkflowInstanceParam'] = request.suspendWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'SuspendWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function suspendWorkflowInstance(request: SuspendWorkflowInstanceRequest): SuspendWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return suspendWorkflowInstanceWithOptions(request, runtime);
}

model TerminateClusterOperationRequest {
  terminateClusterOperationParam?: TerminateClusterOperationParam(name='terminateClusterOperationParam', description='terminateClusterOperationParam'),
}

model TerminateClusterOperationShrinkRequest {
  terminateClusterOperationParamShrink?: string(name='terminateClusterOperationParam', description='terminateClusterOperationParam'),
}

model TerminateClusterOperationResponse = {
  headers: map[string]string(name='headers'),
  body: NoneResponse  
}

async function terminateClusterOperationWithOptions(tmpReq: TerminateClusterOperationRequest, runtime: Util.RuntimeOptions): TerminateClusterOperationResponse {
  Util.validateModel(tmpReq);
  var request = new TerminateClusterOperationShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.terminateClusterOperationParam)) {
    request.terminateClusterOperationParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.terminateClusterOperationParam, 'terminateClusterOperationParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.terminateClusterOperationParamShrink)) {
    body['terminateClusterOperationParam'] = request.terminateClusterOperationParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'TerminateClusterOperation',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function terminateClusterOperation(request: TerminateClusterOperationRequest): TerminateClusterOperationResponse {
  var runtime = new Util.RuntimeOptions{};
  return terminateClusterOperationWithOptions(request, runtime);
}

model TerminateWorkflowInstanceRequest {
  terminateWorkflowInstanceParam?: TerminateWorkflowInstanceParam(name='terminateWorkflowInstanceParam'),
}

model TerminateWorkflowInstanceShrinkRequest {
  terminateWorkflowInstanceParamShrink?: string(name='terminateWorkflowInstanceParam'),
}

model TerminateWorkflowInstanceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function terminateWorkflowInstanceWithOptions(tmpReq: TerminateWorkflowInstanceRequest, runtime: Util.RuntimeOptions): TerminateWorkflowInstanceResponse {
  Util.validateModel(tmpReq);
  var request = new TerminateWorkflowInstanceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.terminateWorkflowInstanceParam)) {
    request.terminateWorkflowInstanceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.terminateWorkflowInstanceParam, 'terminateWorkflowInstanceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.terminateWorkflowInstanceParamShrink)) {
    body['terminateWorkflowInstanceParam'] = request.terminateWorkflowInstanceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'TerminateWorkflowInstance',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function terminateWorkflowInstance(request: TerminateWorkflowInstanceRequest): TerminateWorkflowInstanceResponse {
  var runtime = new Util.RuntimeOptions{};
  return terminateWorkflowInstanceWithOptions(request, runtime);
}

model UnRegisterClusterAckResourceRequest {
  unRegisterClusterAckResourceParam?: UnRegisterClusterAckResourceParam(name='unRegisterClusterAckResourceParam', description='unRegisterClusterAckResourceParam'),
}

model UnRegisterClusterAckResourceShrinkRequest {
  unRegisterClusterAckResourceParamShrink?: string(name='unRegisterClusterAckResourceParam', description='unRegisterClusterAckResourceParam'),
}

model UnRegisterClusterAckResourceResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function unRegisterClusterAckResourceWithOptions(tmpReq: UnRegisterClusterAckResourceRequest, runtime: Util.RuntimeOptions): UnRegisterClusterAckResourceResponse {
  Util.validateModel(tmpReq);
  var request = new UnRegisterClusterAckResourceShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.unRegisterClusterAckResourceParam)) {
    request.unRegisterClusterAckResourceParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.unRegisterClusterAckResourceParam, 'unRegisterClusterAckResourceParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.unRegisterClusterAckResourceParamShrink)) {
    body['unRegisterClusterAckResourceParam'] = request.unRegisterClusterAckResourceParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UnRegisterClusterAckResource',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function unRegisterClusterAckResource(request: UnRegisterClusterAckResourceRequest): UnRegisterClusterAckResourceResponse {
  var runtime = new Util.RuntimeOptions{};
  return unRegisterClusterAckResourceWithOptions(request, runtime);
}

model UniversalOpsRequest {
  apiName?: string(name='apiName'),
  payload?: string(name='payload'),
  type?: string(name='type', description='调用接口类型'),
}

model UniversalOpsResponseBody = {
  code?: string(name='code'),
  data?: string(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model UniversalOpsResponse = {
  headers: map[string]string(name='headers'),
  body: UniversalOpsResponseBody(name='body'),
}

async function universalOpsWithOptions(request: UniversalOpsRequest, runtime: Util.RuntimeOptions): UniversalOpsResponse {
  Util.validateModel(request);
  var query = {};
  if (!Util.isUnset(request.apiName)) {
    query['apiName'] = request.apiName;
  }
  if (!Util.isUnset(request.type)) {
    query['type'] = request.type;
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.payload)) {
    body['payload'] = request.payload;
  }
  var req = new OpenApi.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UniversalOps',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function universalOps(request: UniversalOpsRequest): UniversalOpsResponse {
  var runtime = new Util.RuntimeOptions{};
  return universalOpsWithOptions(request, runtime);
}

model UpdateAckClusterNodePoolsRequest {
  updateAckClusterNodePoolsParam?: UpdateAckClusterNodePoolsParam(name='updateAckClusterNodePoolsParam', description='updateAckClusterNodePoolsParam'),
}

model UpdateAckClusterNodePoolsShrinkRequest {
  updateAckClusterNodePoolsParamShrink?: string(name='updateAckClusterNodePoolsParam', description='updateAckClusterNodePoolsParam'),
}

model UpdateAckClusterNodePoolsResponseBody = {
  code?: string(name='code'),
  data?: boolean(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model UpdateAckClusterNodePoolsResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateAckClusterNodePoolsResponseBody(name='body'),
}

async function updateAckClusterNodePoolsWithOptions(tmpReq: UpdateAckClusterNodePoolsRequest, runtime: Util.RuntimeOptions): UpdateAckClusterNodePoolsResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateAckClusterNodePoolsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateAckClusterNodePoolsParam)) {
    request.updateAckClusterNodePoolsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateAckClusterNodePoolsParam, 'updateAckClusterNodePoolsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateAckClusterNodePoolsParamShrink)) {
    body['updateAckClusterNodePoolsParam'] = request.updateAckClusterNodePoolsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateAckClusterNodePools',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateAckClusterNodePools(request: UpdateAckClusterNodePoolsRequest): UpdateAckClusterNodePoolsResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateAckClusterNodePoolsWithOptions(request, runtime);
}

model UpdateAckClusterNodesRequest {
  updateAckClusterNodesParam?: UpdateAckClusterNodesParam(name='updateAckClusterNodesParam', description='updateAckClusterNodesParam'),
}

model UpdateAckClusterNodesShrinkRequest {
  updateAckClusterNodesParamShrink?: string(name='updateAckClusterNodesParam', description='updateAckClusterNodesParam'),
}

model UpdateAckClusterNodesResponseBody = {
  code?: string(name='code'),
  data?: boolean(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model UpdateAckClusterNodesResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateAckClusterNodesResponseBody(name='body'),
}

async function updateAckClusterNodesWithOptions(tmpReq: UpdateAckClusterNodesRequest, runtime: Util.RuntimeOptions): UpdateAckClusterNodesResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateAckClusterNodesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateAckClusterNodesParam)) {
    request.updateAckClusterNodesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateAckClusterNodesParam, 'updateAckClusterNodesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateAckClusterNodesParamShrink)) {
    body['updateAckClusterNodesParam'] = request.updateAckClusterNodesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateAckClusterNodes',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateAckClusterNodes(request: UpdateAckClusterNodesRequest): UpdateAckClusterNodesResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateAckClusterNodesWithOptions(request, runtime);
}

model UpdateAutoScalingPolicyRequest {
  updateAutoScalingPolicyParam?: UpdateAutoScalingPolicyParam(name='updateAutoScalingPolicyParam'),
}

model UpdateAutoScalingPolicyShrinkRequest {
  updateAutoScalingPolicyParamShrink?: string(name='updateAutoScalingPolicyParam'),
}

model UpdateAutoScalingPolicyResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function updateAutoScalingPolicyWithOptions(tmpReq: UpdateAutoScalingPolicyRequest, runtime: Util.RuntimeOptions): UpdateAutoScalingPolicyResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateAutoScalingPolicyShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateAutoScalingPolicyParam)) {
    request.updateAutoScalingPolicyParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateAutoScalingPolicyParam, 'updateAutoScalingPolicyParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateAutoScalingPolicyParamShrink)) {
    body['updateAutoScalingPolicyParam'] = request.updateAutoScalingPolicyParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateAutoScalingPolicy',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateAutoScalingPolicy(request: UpdateAutoScalingPolicyRequest): UpdateAutoScalingPolicyResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateAutoScalingPolicyWithOptions(request, runtime);
}

model UpdateAutoScalingRuleRequest {
  updateAutoScalingRuleParam?: UpdateAutoScalingRuleParam(name='updateAutoScalingRuleParam', description='updateAutoScalingRuleParam'),
}

model UpdateAutoScalingRuleShrinkRequest {
  updateAutoScalingRuleParamShrink?: string(name='updateAutoScalingRuleParam', description='updateAutoScalingRuleParam'),
}

model UpdateAutoScalingRuleResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function updateAutoScalingRuleWithOptions(tmpReq: UpdateAutoScalingRuleRequest, runtime: Util.RuntimeOptions): UpdateAutoScalingRuleResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateAutoScalingRuleShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateAutoScalingRuleParam)) {
    request.updateAutoScalingRuleParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateAutoScalingRuleParam, 'updateAutoScalingRuleParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateAutoScalingRuleParamShrink)) {
    body['updateAutoScalingRuleParam'] = request.updateAutoScalingRuleParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateAutoScalingRule',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateAutoScalingRule(request: UpdateAutoScalingRuleRequest): UpdateAutoScalingRuleResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateAutoScalingRuleWithOptions(request, runtime);
}

model UpdateClusterAttributeRequest {
  param?: UpdateClusterAttributeParam(name='param'),
}

model UpdateClusterAttributeShrinkRequest {
  paramShrink?: string(name='param'),
}

model UpdateClusterAttributeResponseBody = {
  requestId?: string(name='requestId', description='Id of the request'),
  success?: boolean(name='success'),
}

model UpdateClusterAttributeResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateClusterAttributeResponseBody(name='body'),
}

async function updateClusterAttributeWithOptions(tmpReq: UpdateClusterAttributeRequest, runtime: Util.RuntimeOptions): UpdateClusterAttributeResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateClusterAttributeShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.param)) {
    request.paramShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.param, 'param', 'json');
  }
  var query = {};
  if (!Util.isUnset(request.paramShrink)) {
    query['param'] = request.paramShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    query = OpenApiUtil.query(query),
  };
  var params = new OpenApi.Params{
    action = 'UpdateClusterAttribute',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateClusterAttribute(request: UpdateClusterAttributeRequest): UpdateClusterAttributeResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateClusterAttributeWithOptions(request, runtime);
}

model UpdateClusterNodeGroupRequest {
  updateClusterNodeGroupParam?: UpdateClusterNodeGroupParam(name='updateClusterNodeGroupParam', description='updateClusterNodeGroupParam'),
}

model UpdateClusterNodeGroupShrinkRequest {
  updateClusterNodeGroupParamShrink?: string(name='updateClusterNodeGroupParam', description='updateClusterNodeGroupParam'),
}

model UpdateClusterNodeGroupResponseBody = {
  code?: string(name='Code', description='code'),
  message?: string(name='Message', description='message'),
  requestId?: string(name='RequestId', description='Id of the request'),
  data?: string(name='data', description='data'),
  success?: boolean(name='success', description='success'),
}

model UpdateClusterNodeGroupResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateClusterNodeGroupResponseBody(name='body'),
}

async function updateClusterNodeGroupWithOptions(tmpReq: UpdateClusterNodeGroupRequest, runtime: Util.RuntimeOptions): UpdateClusterNodeGroupResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateClusterNodeGroupShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateClusterNodeGroupParam)) {
    request.updateClusterNodeGroupParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateClusterNodeGroupParam, 'updateClusterNodeGroupParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateClusterNodeGroupParamShrink)) {
    body['updateClusterNodeGroupParam'] = request.updateClusterNodeGroupParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateClusterNodeGroup',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateClusterNodeGroup(request: UpdateClusterNodeGroupRequest): UpdateClusterNodeGroupResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateClusterNodeGroupWithOptions(request, runtime);
}

model UpdateClusterScriptRequest {
  updateClusterScriptParam?: UpdateClusterScriptParam(name='updateClusterScriptParam', description='updateClusterScriptParam'),
}

model UpdateClusterScriptShrinkRequest {
  updateClusterScriptParamShrink?: string(name='updateClusterScriptParam', description='updateClusterScriptParam'),
}

model UpdateClusterScriptResponse = {
  headers: map[string]string(name='headers'),
  body: BooleanResponse  
}

async function updateClusterScriptWithOptions(tmpReq: UpdateClusterScriptRequest, runtime: Util.RuntimeOptions): UpdateClusterScriptResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateClusterScriptShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateClusterScriptParam)) {
    request.updateClusterScriptParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateClusterScriptParam, 'updateClusterScriptParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateClusterScriptParamShrink)) {
    body['updateClusterScriptParam'] = request.updateClusterScriptParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateClusterScript',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateClusterScript(request: UpdateClusterScriptRequest): UpdateClusterScriptResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateClusterScriptWithOptions(request, runtime);
}

model UpdateClusterUserRequest {
  updateClusterUserParam?: UpdateClusterUserParam(name='updateClusterUserParam'),
}

model UpdateClusterUserShrinkRequest {
  updateClusterUserParamShrink?: string(name='updateClusterUserParam'),
}

model UpdateClusterUserResponseBody = {
  requestId?: string(name='RequestId', description='Id of the request'),
  success?: boolean(name='Success'),
}

model UpdateClusterUserResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateClusterUserResponseBody(name='body'),
}

async function updateClusterUserWithOptions(tmpReq: UpdateClusterUserRequest, runtime: Util.RuntimeOptions): UpdateClusterUserResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateClusterUserShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateClusterUserParam)) {
    request.updateClusterUserParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateClusterUserParam, 'updateClusterUserParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateClusterUserParamShrink)) {
    body['updateClusterUserParam'] = request.updateClusterUserParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateClusterUser',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateClusterUser(request: UpdateClusterUserRequest): UpdateClusterUserResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateClusterUserWithOptions(request, runtime);
}

model UpdateConfigRequest {
  updateConfigParam?: UpdateConfigParam(name='updateConfigParam', description='updateConfigParam'),
}

model UpdateConfigShrinkRequest {
  updateConfigParamShrink?: string(name='updateConfigParam', description='updateConfigParam'),
}

model UpdateConfigResponseBody = {
  code?: string(name='code'),
  data?: UpdateConfigResult(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model UpdateConfigResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateConfigResponseBody(name='body'),
}

async function updateConfigWithOptions(tmpReq: UpdateConfigRequest, runtime: Util.RuntimeOptions): UpdateConfigResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateConfigShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateConfigParam)) {
    request.updateConfigParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateConfigParam, 'updateConfigParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateConfigParamShrink)) {
    body['updateConfigParam'] = request.updateConfigParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateConfig',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateConfig(request: UpdateConfigRequest): UpdateConfigResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateConfigWithOptions(request, runtime);
}

model UpdateOnKubeDedicatedNodesRequest {
  updateOnKubeDedicatedNodesParam?: UpdateOnKubeDedicatedNodesParam(name='updateOnKubeDedicatedNodesParam', description='updateOnKubeDedicatedNodesParam'),
}

model UpdateOnKubeDedicatedNodesShrinkRequest {
  updateOnKubeDedicatedNodesParamShrink?: string(name='updateOnKubeDedicatedNodesParam', description='updateOnKubeDedicatedNodesParam'),
}

model UpdateOnKubeDedicatedNodesResponseBody = {
  code?: string(name='code'),
  data?: boolean(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model UpdateOnKubeDedicatedNodesResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateOnKubeDedicatedNodesResponseBody(name='body'),
}

async function updateOnKubeDedicatedNodesWithOptions(tmpReq: UpdateOnKubeDedicatedNodesRequest, runtime: Util.RuntimeOptions): UpdateOnKubeDedicatedNodesResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateOnKubeDedicatedNodesShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateOnKubeDedicatedNodesParam)) {
    request.updateOnKubeDedicatedNodesParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateOnKubeDedicatedNodesParam, 'updateOnKubeDedicatedNodesParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateOnKubeDedicatedNodesParamShrink)) {
    body['updateOnKubeDedicatedNodesParam'] = request.updateOnKubeDedicatedNodesParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateOnKubeDedicatedNodes',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateOnKubeDedicatedNodes(request: UpdateOnKubeDedicatedNodesRequest): UpdateOnKubeDedicatedNodesResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateOnKubeDedicatedNodesWithOptions(request, runtime);
}

model UpdateSecurityModeRequest {
  updateClusterSecurityModeParam?: UpdateSecurityModeParam(name='updateClusterSecurityModeParam', description='updateSecurityModeParam'),
}

model UpdateSecurityModeShrinkRequest {
  updateClusterSecurityModeParamShrink?: string(name='updateClusterSecurityModeParam', description='updateSecurityModeParam'),
}

model UpdateSecurityModeResponse = {
  headers: map[string]string(name='headers'),
  body: StringResponse  
}

async function updateSecurityModeWithOptions(tmpReq: UpdateSecurityModeRequest, runtime: Util.RuntimeOptions): UpdateSecurityModeResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateSecurityModeShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateClusterSecurityModeParam)) {
    request.updateClusterSecurityModeParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateClusterSecurityModeParam, 'updateClusterSecurityModeParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateClusterSecurityModeParamShrink)) {
    body['updateClusterSecurityModeParam'] = request.updateClusterSecurityModeParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'UpdateSecurityMode',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateSecurityMode(request: UpdateSecurityModeRequest): UpdateSecurityModeResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateSecurityModeWithOptions(request, runtime);
}

model UpdateOnKubeDedicatedNodePoolsRequest {
  updateOnKubeDedicatedNodePoolsParam?: UpdateOnKubeDedicatedNodePoolsParam(name='updateOnKubeDedicatedNodePoolsParam', description='updateOnKubeDedicatedNodePoolsParam'),
}

model UpdateOnKubeDedicatedNodePoolsShrinkRequest {
  updateOnKubeDedicatedNodePoolsParamShrink?: string(name='updateOnKubeDedicatedNodePoolsParam', description='updateOnKubeDedicatedNodePoolsParam'),
}

model UpdateOnKubeDedicatedNodePoolsResponseBody = {
  code?: string(name='code'),
  data?: boolean(name='data'),
  message?: string(name='message'),
  requestId?: string(name='requestId'),
  success?: boolean(name='success'),
}

model UpdateOnKubeDedicatedNodePoolsResponse = {
  headers: map[string]string(name='headers'),
  body: UpdateOnKubeDedicatedNodePoolsResponseBody(name='body'),
}

async function updateOnKubeDedicatedNodePoolsWithOptions(tmpReq: UpdateOnKubeDedicatedNodePoolsRequest, runtime: Util.RuntimeOptions): UpdateOnKubeDedicatedNodePoolsResponse {
  Util.validateModel(tmpReq);
  var request = new UpdateOnKubeDedicatedNodePoolsShrinkRequest{};
  OpenApiUtil.convert(tmpReq, request);
  if (!Util.isUnset(tmpReq.updateOnKubeDedicatedNodePoolsParam)) {
    request.updateOnKubeDedicatedNodePoolsParamShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.updateOnKubeDedicatedNodePoolsParam, 'updateOnKubeDedicatedNodePoolsParam', 'json');
  }
  var body : map[string]any= {};
  if (!Util.isUnset(request.updateOnKubeDedicatedNodePoolsParamShrink)) {
    body['updateOnKubeDedicatedNodePoolsParam'] = request.updateOnKubeDedicatedNodePoolsParamShrink;
  }
  var req = new OpenApi.OpenApiRequest{ 
    body = OpenApiUtil.parseToMap(body),
  };
  var params = new OpenApi.Params{
    action = 'updateOnKubeDedicatedNodePools',
    version = '2021-03-31',
    protocol = 'HTTPS',
    pathname = '/',
    method = 'POST',
    authType = 'AK',
    style = 'RPC',
    reqBodyType = 'formData',
    bodyType = 'json',
  };
  return callApi(params, req, runtime);
}

async function updateOnKubeDedicatedNodePools(request: UpdateOnKubeDedicatedNodePoolsRequest): UpdateOnKubeDedicatedNodePoolsResponse {
  var runtime = new Util.RuntimeOptions{};
  return updateOnKubeDedicatedNodePoolsWithOptions(request, runtime);
}

